Winkey를 다시 매핑하고 바로가기 비활성화

Winkey를 다시 매핑하고 바로가기 비활성화

목적은 게임용이며 Winkey를 다른 키에 다시 매핑하여 시작 메뉴를 눌렀을 때 팝업이 표시되지 않도록 하고 Winkey+e(explorer.exe를 여는)와 같은 Winkey 단축키를 비활성화하고 싶습니다. 지금 게임 중이에요.

이것이 내가 지금까지 시도한 것입니다:

#IfWinActive ahk_class LWJGL
    LWin::p
    return
    LWin & e::e
    return
#IfWinActive

리매핑은 게임에서 선택되지 않습니다. Lwin은 Lwin으로 처리되지만 시작 메뉴가 차단되어 우리가 목표로 했던 것의 절반이 됩니다.

하지만 를 길게 누르면 의도하지 않은 Winkeye가 열리므로 이 단계에서 키와 키를 눌렀으면 explorer.exe좋겠습니다 .pe

이를 달성한 AHK 전문가가 있습니까?

다음과 같이 바로가기를 차단해 보았습니다.

#IfWinActive ahk_class LWJGL
    LWin::p
    return
    Lwin & e::
    return
#IfWinActive

하지만 키만 보낼 뿐이고 키 p는 생략됩니다 e.

Send또한 다음과 같은 명령 과 함께 명령을 사용해 보았습니다 Up.

#IfWinActive ahk_class LWJGL
    LWin::p
    return
    LWin & e::
        Send {LWin Up}
        Send {e Down}
    return
    e Up::Send {e Up}
    return
#IfWinActive

e키가 자체적으로 아무 것도 수행하지 않는다는 점 을 제외하면 모든 것이 수정되었습니다 (키를 누르면 아무 작업도 수행되지 않으며 LWin을 누른 다음 e누른 경우에만 작동합니다). 여기서 첫 번째 문제도 해결되지 않았으므로 LWin 키가 p게임에서 다시 매핑되지 않습니다.


이 스크립트에서 테스트 중인 특정 게임은 Minecraft이지만 CS:GO에서도 테스트했는데 LWin 키가 로 다시 매핑되지 않고 p여전히 Winkey로 처리됩니다. Notepad.exe나 기타 게임이 아닌 프로그램 에서는 LWin::p그렇지 않습니다 .Winkeyp

답변1

Windows 키는 AutoHotkey에서 다시 매핑하는 데 문제가 있는 키입니다. 이는 실제로 Windows에서 Windows 키를 눌렀다는 사실을 인식하는 것을 막을 수 없기 때문입니다.시작 메뉴가 열리지 않도록 하려면 추가로 시뮬레이션된 키 입력을 보내야 합니다.. 게임의 안정성을 위한 최선의 방법은 다음과 같습니다.

먼저 SharpKeys를 사용하여 키보드에 없는 키(예: F15)에 키를 다시 매핑하세요. 그런 다음 게임에 참여 중일 때와 그렇지 않을 때를 위해 이 키를 별도로 다시 매핑하십시오.

#IfWinActive ahk_class LWJGL
    F15::p
#IfWinActive

#IfWinNotActive ahk_class LWJGL
    F15::LWin
#IfWinNotActive

(다시 매핑하거나 단축키가 한 줄만 실행해야 하는 경우 return 문이 필요하지 않습니다.)

답변2

당신이 해야 할 일은 키 자체를 다시 매핑하는 것뿐입니다. LWin 키 콤보를 다시 매핑할 필요는 없습니다.

#IfWinActive ahk_class LWJGL
    LWin::p
#IfWinActive

당신 은 LWin & e::e그것을 "e"로 다시 매핑하고 있습니다. 따라서 모든 수정자 키가 전달됩니다. 이 경우 Win 키가 통과하므로 Win + E.

e는 {blind}모든 수정자 키가 누르는 키에 영향을 미칠 수 있다는 점에 유의하십시오. 왜냐하면 키를 "e"로 다시 매핑하고 대문자로 표시하려면 "Shift"를 누른 상태에서 "다시 매핑된 키"를 누르기 때문입니다.

또한 키 재맵핑은 Send, {DownR}키보드 단축키와 함께 사용하기 위해 물리적으로 키를 누르는 것과 유사한 효과를 갖는 방법을 사용한다는 점에 유의하십시오.

관련 정보