방개
비밀번호를 잊어버리셨나요?

질문

조합키 Shift를 사용했을 때 문제

    • 글자 크기

안녕하세요.

처음 스크립트를 짜보는 사람입니다. 고수분들 지식을 구하려고 왔어요.

 

+Esc::!F4

 

이렇게 스크립트를 짜면 실제로는 +Esc가 +!F4로 인식되어 Windows 탐색기가 강제종료됩니다.

(바탕화면 아이콘이 사라집니다.)

아마 조합키 Shift가 계속 유효하기에 생기는 일 같은데, 제대로 !F4로 인식되게 하는 방법이 없을까요?

 

    • 글자 크기
댓글 3
  • 2020.3.23 22:52 댓글

    오토핫키는 키 리매핑에 특화되어있어서, 쓰신것과 같이 별도의 명령어를 쓰지 않고 ::만으로 키 눌림을 구현할 수 있습니다.
    예를 들면, a::b 이런식으로 말입니다.

     

    근데, 이러한 리매핑 방식은 Blind 모드라는 것이 자동으로 들어가있습니다. Blind가 무엇이냐면, 이전 키의 입력을 그대로 유지하고 Send 하는 방식입니다.
    예를 들어서, 아래 스크립트를 실행시킨 후 메모장에 Shift+1키를 눌러보실래요? (Shift키는 손에서 떼지 마세요!)

    +1::Send, abc

    abc가 입력될 것입니다.

     

    근데, 아래와 같이 스크립트를 수정하시고 다시 메모장에 쳐보세요. 역시 Shift+1을 누른 뒤 Shift키는 떼지 마세요.

    +1::Send, {Blind}abc

    Shift키의 입력이 유지되어, ABC로 입력됩니다.

     

    이것이 Blind모드를 썼을때와, 쓰지 않았을 때의 차이입니다. 이전 키 입력이 Blind모드에선 유지가 됩니다.

     

    작성자님이 쓰신 구문.. 그러니까

    +ESC::!F4

    라는 구문은 자동으로 Blind 모드가 들어가있습니다. Send를 이용하지 않고, 콜론(:)뒤에 리매핑할 키를 써주었기 때문입니다.

    즉, 이전의 키 입력.. Shift키가 콜론 뒤에서도 남아있어서, +!F4라는 조합키가 만들어진 것입니다.

     

    따라서 아래와 같이 Send를 이용하여 리매핑하면, Blind모드도 적용되지 않고, 핫키의 키는 Send구문을 실행할 땐 눌려있지 않을 것입니다.

    +ESC::Send, !{F4}

     

  • 2020.3.23 23:01 댓글

    요약합니다.

     

    글쓴이님께서 쓰신

    +ESC::!F4

    라는 코드는,

    +ESC::Send, {Blind}!{F4}

    라는 코드와 동일한데요.

    이때 {Blind}는 "핫키의 입력을 유지"입니다.

    따라서, Blind를 쓰지 않고 그냥 Send 구문을 이용하여 리매핑을 하시면 정상 작동 될겁니다.

     

    아래처럼 말입니다.

    +ESC::Send, !{F4}

     

  • 프날님께
    apple글쓴이
    2020.3.24 01:22 댓글

    친절한 답변 정말 감사드려요.

    WASD를 Ctrl+Space와 눌러 방향키 기능을 하게 하거나, 아예 토글키(Shift+Space)로 방향키와 전환되게끔 하는 스크립트를 만들고 있었는데,

    덕분에 종료키를 추가로 넣을 수 있었습니다.

댓글 달기

서버에 요청 중입니다. 잠시만 기다려 주십시오...