上的任意键AutoHotkey的运行程序(AutoHotKey run program on any

2019-10-18 05:14发布

我想运行一个程序时,按下任意键在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

Answer 1:

一个简单的解决方案:

#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仅查找键盘事件。



Answer 2:

你必须检查A_TimeIdlePhysical定期,不只是一次在脚本开始:

#InstallKeybdHook
SetTimer, CheckActivity, 100
Exit

CheckActivity:
    if(A_TimeIdlePhysical < 100) {
        Run, myNastyPictureMaker.bat
        ExitApp
    }
return

您可以使用SetTimer由于重复任务。 检测到第一活动时的脚本停止; 否则,它会拍摄一张照片,每100毫秒(或任何超时设置)。

PS:我希望你只是想用这样的脚本您的私人电脑上,而不是一些公开可用的计算机...



Answer 3:

使用输入,任意键,L1等待被按下任意键。 L1后意味着按下一个键,而不需要一个[结束]键。 您可以查看任意键的内容,但并不真正需要。



Answer 4:

也许是知道密钥的列表可能会奏效?

keys = ``1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./
Loop Parse, keys
Run, D:\my\program\to\run\on\any\key.bat
return

这是想到什么。



Answer 5:

#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


文章来源: AutoHotKey run program on any key