我想运行一个程序时,按下任意键在AutoHotkey
就像是:
AnyKey::Run, D:\my\program\to\run\on\any\key.bat
EDIT2:此代码是可以正常使用:
#InstallKeybdHook
SetTimer, AnyKeyPressed, 100
AnyKeyPressed:
if( A_TimeIdlePhysical < 100 ){
Run, D:\my\program\to\run\on\any\key.bat
}
^!p::pause
一个简单的解决方案:
#InstallKeybdHook ; this MUST be called at the start of your script
AnyKeyPressed() ; returns a 1 if any keyboard key is pressed, else returns 0
{
if( A_TimeIdlePhysical < 25 )
return 1
return 0
}
请注意,如果按下任意键或被按住此函数将返回1,所以适当地更改代码。
会发生什么事; 该#InstallKeybdHook
会改变的行为A_TimeIdlePhysical
仅查找键盘事件。
你必须检查A_TimeIdlePhysical
定期,不只是一次在脚本开始:
#InstallKeybdHook
SetTimer, CheckActivity, 100
Exit
CheckActivity:
if(A_TimeIdlePhysical < 100) {
Run, myNastyPictureMaker.bat
ExitApp
}
return
您可以使用SetTimer
由于重复任务。 检测到第一活动时的脚本停止; 否则,它会拍摄一张照片,每100毫秒(或任何超时设置)。
PS:我希望你只是想用这样的脚本您的私人电脑上,而不是一些公开可用的计算机...
使用输入,任意键,L1等待被按下任意键。 L1后意味着按下一个键,而不需要一个[结束]键。 您可以查看任意键的内容,但并不真正需要。
也许是知道密钥的列表可能会奏效?
keys = ``1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./
Loop Parse, keys
Run, D:\my\program\to\run\on\any\key.bat
return
这是想到什么。
#Persistent
#InstallKeyBDHook
SetTimer, WaitingForKey, 100
Return
WaitingForKey:
Input, LogChar, B I L1 V
LogWord := LogWord . LogChar
ToolTip, % LogWord
;Run, D:\my\program\to\run\on\any\key.bat
LogWord:=
Return
^!p::pause