问题描述
美好的一天,
我正在尝试为 AutoHotKey (AHK) 创建一个脚本,该脚本将在同时按下 Caps lock+A 时显示图像,并在释放按键后隐藏.
我当前的解决方案显示了图像,但只有在按 Esc 后它才会消失:
#Persistent
SetCapsLockState,AlwaysOff
#If,GetKeyState("CapsLock","P")
a::
Gui +LastFound +AlwaysOnTop +ToolWindow -Theme -Border -Caption
Gui,Color,FFFFFF
WinSet,Transcolor,FFFFFF
Gui,Add,Picture,x0 y0 w1827 h635,C:\Users\User\Image.png
Gui,Show,xCenter y360 w1827 h635
Gui,Margin,0
return
GuiEscape:
Gui,Cancel
Gui,Hide
return
我尝试过设置状态或UP::,但没有任何效果。期待得到一些帮助。
解决方法
KeyWait 似乎正是您要找的。p>
来自文档:
键等待
等待按键或鼠标/操纵杆按钮被释放或按下 下来。
KeyWait,KeyName,Options
所以为了延迟脚本直到 a 键被释放,你可以这样实现:
KeyWait a
最终代码:
SetCapsLockState,AlwaysOff
#If,GetKeyState("CapsLock","P")
a::
Gui +LastFound +AlwaysOnTop +ToolWindow -Theme -Border -Caption
Gui,Color,FFFFFF
WinSet,Transcolor,FFFFFF
Gui,Add,Picture,x0 y0 w1827 h635,C:\Users\User\Image.png
Gui,Show,xCenter y360 w1827 h635
Gui,Margin,0
KeyWait a
gosub GuiEscape
return
GuiEscape:
Gui,Cancel
Gui,Hide
return