AHK 按键仅在按下时显示图像

问题描述

美好的一天,

我正在尝试为 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