AutoHotkey(EU 키보드): AltGr을 유지하면서 LCtrl을 다시 매핑하는 방법

AutoHotkey(EU 키보드): AltGr을 유지하면서 LCtrl을 다시 매핑하는 방법

과거 질문을 검색했지만 + (또는 + ?) 에 해당하는 완전히 보존하면서 (또는 ) LAlt로 전환하는 솔루션 을 찾지 못했습니다 .LCtrlCapsLockLCtrlAltGrCtrlAltLCtrlRAlt

가장 가까운 질문이지만 레지스트리를 사용할 수 없으며 권한이 제한되어 있습니다. Alt-Tab 전환기를 망칠 필요 없이 AutoHotKey를 사용하여 Ctrl과 Alt를 전환하시겠습니까?

또한 관련: https://code.google.com/p/uawks/issues/detail?id=2

저는 다음과 같은 간단한 스크립트 중 하나를 사용하고 있습니다.

LAlt::LCtrl
LCtrl::LAlt

두번째 것:

LCtrl::CapsLock
CapsLock::LCtrl

다른 키를 누를 때마다 AltGr뭔가 걸려서 다시 쓸 수 있을 때까지 Alt무작위 로 를 눌러야 합니다. Ctrl두 번째 스크립트를 사용하면 CapsLock이 활성화됩니다!

내 키보드는 스위스 키보드이고 세 번째 기호가 있는 키가 너무 많아서 자주 필요하므로 AltGr각 키를 다시 매핑하는 것은 깨끗한 해결책이 아닙니다.

업데이트

AltGr이전에 게시한 두 스크립트 끝에 다음 줄을 추가하면 문제가 완전히 해결되었음을 방금 알았는데 왜 이런 일이 발생하는지 이해가 되지 않습니다.

<^>!::RAlt

AltGras ALONE 을 다시 매핑해도 RAlt여전히 일반 효과가 나타나는 이유는 무엇입니까 AltGr?

답변1

1) 본질적으로 단순하지만 이 게시물의 논리는 테스트할 AltGr 키보드가 없는 사람들이 따라가기가 어렵습니다. 어쨌든 나는 내 자신을 위해 말하는 것입니다... 이해를 돕기 위해 어떤 두 줄 스크립트에 대해 말하는지 명확히 하는 데 도움이 될 수 있습니다. 그 뒤에는 어떤 키를 누르는지(그리고 어떤 순서로), 무엇을 누르는지에 대한 목록이 이어집니다. 당신이 얻는 결과. 그런 다음 다음 스크립트, 키 및 결과를 나열합니다. 아니면 다른 사람들에게는 이것이 필요하지 않을 수도 있지만, 귀하가 모든 중요한 정보를 나열했다고 생각하더라도 따라가기가 약간 어려웠습니다.

2) 도움말 파일에서 단축키 재할당을 살펴보셨나요? 나는 당신이 가지고 놀고 싶어할 만한 두 가지를 발견했습니다. 첫 번째는 *를 수식어로 사용하는 것입니다. 두 번째는 '위로'를 사용하여 업스트로크를 트리거하여 다른 업스트로크를 보내는 것입니다(즉, 다른 수정자를 위한 업스트로크 보내기). 도움말 파일의 단축키 아래에 나열된 LWin 재정의를 살펴보세요.

*LWin::Send {LControl Down}
*LWin Up::Send {LControl Up}

3) 때때로 문제가 발생하며, 그런 일이 발생하면 키가 이미 올라와 있어도 '위로' 명령을 보내 문제를 해결할 수 있는 경우가 있습니다. 기술적으로는 필요하지 않을 수도 있지만 때로는 작동할 수도 있고 때로는 작동하지 않을 수도 있습니다.

4) 보기 메뉴를 통해 주요 내역 목록을 보는 역할을 할 수도 있고 하지 않을 수도 있습니다. 키가 처리되는 순서(즉, 나열된 순서)와 나열된 다양한 이유로 키가 무시되는지 여부를 살펴봄으로써 문제가 발생하는 이유나 잘못된 실행 이유를 알 수 있는 경우가 많습니다.

5) LWin 재정의 예제에서 볼 수 있듯이 문제 해결 중에 더 많은 유연성을 위해 'Send' 또는 'SendInput' 명령을 사용할 수 있습니다(물론 필요하지 않은 경우에는 사용하지 않고 코드를 더 깔끔하게 만들 수 있지만, 아무 것도 아프지 않습니다). 예를 들어 보내기 명령을 사용하면 단일 단축키 재지정에 다른 문자나 키 입력을 쉽게 추가할 수 있으며 키 기록 목록에서 실행 순서를 확인하여 무엇인지 확인할 수 있습니다.생각한다눌려진 순서와 순서.

테스트할 키보드 중 하나가 있다면 아마도 나열한 두 줄 예제 중 하나를 선택하여 LWin 재할당 예제 방식으로 네 줄 키 재할당으로 바꾼 다음, 키보드에서 무슨 일이 일어나는지 살펴보겠습니다. 주요 내역. 동작 중에 이를 포착하고 일시 중지가 실행된 지점까지의 키 입력 기록을 볼 수 있도록 일시 중지 문도 추가할 수 있습니다. 그러면 로그에서 해제되는 수정자 키가 표시되지 않도록 제외됩니다.

이것이 작동할지는 모르겠지만 디버깅 목적으로 시작할 수 있는 유형의 개요는 다음과 같습니다.

*LAlt::Send {LCtrl Down}
*LAlt Up::Send {LCtrl Up}
*LCtrl Up::Send {LAlt Up}
*LCtrl::
     Send {LAlt Down}
     Pause   ; once the script is paused you can go look at Key History
 Return

관련 정보