Windows 自动热键:用另一个热键切换RAlt到鼠标热键
我正在尝试创建一个热键(Win+Shift+Q),它可以打开/关闭另一个热键,将右Alt键更改为鼠标左键单击;然而,我不能让它工作 预期行为:Windows 自动热键:用另一个热键切换RAlt到鼠标热键,windows,autohotkey,keymapping,Windows,Autohotkey,Keymapping,我正在尝试创建一个热键(Win+Shift+Q),它可以打开/关闭另一个热键,将右Alt键更改为鼠标左键单击;然而,我不能让它工作 预期行为: 按Windows+Shift+Q将首先切换右Alt键以用作鼠标左键单击 再次按Windows+Shift+Q将右Alt键切换回充当右Alt键 再次按Windows+Shift+Q将恢复为左键单击行为(请参见#1)。等等 下面是我的代码的最新迭代: Hotkey, RAlt, MyClick, On #+Q:: ;Win+Shift+Q :: ::Ri
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.
大多数其他可能与(,)相关的帖子只处理键到键的映射,而不是键到鼠标的映射。我不知道这是否是我的问题的原因
以前我有这个,但是Win+Shift+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
我还想补充一点,我希望这种行为能够跨窗口进行,而不仅仅是单个应用程序(这似乎也是其他帖子中的一个主题,允许使用35; IfWinActive类型建议/解决方案).我在AutoHotkey v1.1.13.01 Unicode 32位中尝试了您当前的代码迭代,按消息框上的
OK
后,我没有发现任何错误,脚本按广告的方式工作
尝试在此处更新您的自动热键版本:并查看问题是否仍然存在。不确定我的旧版本为何无法工作。我还必须将我的初始热键(热键、RAlt、MyClick、On)移动到文件的顶部,否则我会不断收到错误(我不知道,这可能在旧版本中也修复了它)。
bState:=False
#If bState
RAlt::Click
#If
#+vk51:: ; win + shift + q
KeyWait, vk51
TrayTip, % "state of switch", % (bState:=!bState) ? "on":"off"
Return