2014-02-06 2 views
0

오른쪽 Alt 키를 왼쪽 마우스 클릭으로 변경하는 다른 단축키를 켜기/끄기로 전환하는 단축키 (Win + Shift + Q)를 만들려고합니다. 그러나 나는 그것을 작동시킬 수 없다.AutoHotKey : RAlt를 다른 단축키로 마우스 단축키로 전환

예상 동작 :

  1. 윈도우 + 시프트 + Q 처음에 마우스 왼쪽 클릭과 같은 역할을 할 수있는 마우스 오른쪽 Alt 키를 토글을 누르면.
  2. Windows + Shift + Q를 다시 누르면 오른쪽 Alt 키가 오른쪽 Alt 키 역할을하도록 토글됩니다.
  3. Windows + Shift + Q를 다시 누르면 왼쪽 클릭 동작으로 되돌아갑니다 (# 1 참조). 등등. 여기에 내 코드의 최신 반복의

:

Hotkey, RAlt, MyClick, On 
#+Q:: ;Win+Shift+Q :: ::Right-Alt acts as a left mouse button click 
    switch := !switch 
    MsgBox %switch% 
    Hotkey RAlt, % (switch ? "Off": "On") 
    Return 

MyClick: 
    MouseClick 
Return 

내 스크립트를 실행하면 내가있는 MsgBox에서 확인을 클릭 한 후 다음과 같은 오류가 발생하고 스크립트가 종료됩니다

Error: Nonexistent hotkey 

Specifically: RAlt 

    Line# 
    141: Hotkey,RAlt,MyClick,On 
    143: switch:=!switch 
    144: MsgBox %switch% 
-->145: Hotkey RAlt, % (switch ? "Off": "On") 
    146: Return 
    149: MouseClick 
    150: Return 

The current thread will exit. 

대부분의 다른 게시물 (Can AutoHotKey toggle keymapping?, Autohotkey: Toggle a set of keybinds on and off)은 키 매핑과 키 매핑을 처리하지 않습니다. 그게 내 문제의 원인인지 아닌지는 알 수 없습니다.

가 이전에 나는이 있었지만 승 + 시프트 + Q가 동작을 전환하지 않았다 RAlt 항상 역할을 내가 주석 그래서 왼쪽 클릭 :

#+Q:: ;Win+Shift+Q :: ::Right-Alt acts as a left mouse button click 
    RAlt::LButton 
    ;Hotkey, RAlt, Toggle ;Does not work for some reason 

    int += 1 
    test := mod(int, 2) = 0 
    if (test) { 
     msgbox on 
     Hotkey, RAlt, On 
    } 
    else { 
     msgbox off 
     Hotkey, leftClick, Off 
    } 
Return 

나는 또한 것을 추가 할 것 단일 응용 프로그램 (# IfWinActive-type 제안/솔루션을 허용하는 다른 게시물의 주제 인 것처럼 보입니다)뿐만 아니라 Windows 전반에서이 동작을 원합니다.

답변

0

AutoHotkey v1.1.13.01 유니 코드 32 비트에서 현재 반복되는 코드를 시도했지만 메시지 상자에 OK을 누르면 오류가 없습니다. 스크립트는 보급대로 작동합니다.

여기에서 AutoHotkey 버전을 업데이트 해보십시오 : http://ahkscript.org/download/ 그리고이 문제가 계속 발생하는지 확인하십시오.

+0

내 이전 버전이 작동하지 않는 이유를 잘 모릅니다. 나는 또한 내 초기 Hotkey (Hotkey, RAlt, MyClick, On)를 내 파일의 맨 위로 옮겨야했다. 그렇지 않으면 오류가 계속 발생했다 (이전 버전에서도 수정되었을 수있다.). – chewmewaba4

0
bState:=False 

#If bState 
    RAlt::Click 
#If 

#+vk51:: ; win + shift + q 
    KeyWait, vk51 
    TrayTip, % "state of switch", % (bState:=!bState) ? "on":"off" 
    Return 
관련 문제