我正在尝试创建一个脚本,该脚本将根据以下内容更改桌面:当我按住鼠标右键(即右键单击)然后使用滚轮时。向上滚动应该转到左侧桌面,向右滚动应该转到右侧桌面,同时按住鼠标右键。我尝试将其分配给键盘 Ctrl+Win+箭头键,但脚本只是按住所有按钮和键,我必须重新启动计算机。任何帮助都非常感谢。
答案1
尝试这个:
~RButton & WheelUp:: ; next desktop
Send, ^#{Right} ; Ctrl+Win+Right
ToolTip, next desktop
SetTimer, Remove_ToolTip, 50
return
~RButton & WheelDown:: ; previous desktop
Send, ^#{Left} ; Ctrl+Win+Left
ToolTip, previous desktop
SetTimer, Remove_ToolTip, 50
return
Remove_ToolTip:
KeyWait, RButton ; wait for the RButton to be relased
SetTimer, Remove_ToolTip, off
ToolTip ; remove the ToolTip
SendInput, {Esc} ; close the context menu
return
如果您想使用 WheelRight/WheelLeft,请在代码中替换WheelUp
byWheelRight
和WheelDown
by 。WheelLeft
答案2
尝试将~
前缀应用于您的热键。但请注意,鼠标键似乎具有与您遇到的性质类似的不一致行为。我自己也遇到过同样的问题,并在 AHK Discord 中询问过,但无济于事。关于“卡在触发”行为,请注意,您可以简单地重新加载脚本以释放卡住的键,或者根据它是哪个修饰键,只需再次手动调用它也可以释放该键(仅供参考,您可以使用键盘输入Win+B选择脚本的托盘图标)。虽然通常可以通过明确定义向上/向下键状态来规避这种性质的错误行为,但我注意到,无论如何,鼠标键再次特别容易受到这种类型的行为的影响。