1

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
4

5 に答える 5

3

A_TimeIdlePhysicalスクリプトの開始時に一度だけでなく、定期的に確認する必要があります。

#InstallKeybdHook
SetTimer, CheckActivity, 100
Exit

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

SetTimer定期的なタスクに使用できます。最初のアクティビティが検出されると、スクリプトは停止します。それ以外の場合は、100 ミリ秒 (または設定したタイムアウト) ごとに写真を撮ります。

PS: このようなスクリプトは、公開されているコンピューターではなく、プライベート PC でのみ使用してください...

于 2013-06-07T17:20:05.987 に答える
3

簡単な解決策:

#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れ、キーボード イベントのみが検索されます。

于 2013-06-07T13:23:57.387 に答える
0

Input、AnyKey、L1 を使用して、任意のキーが押されるのを待ちます。L1 は、[end] キーを必要とせずに、1 つのキーが押された後を意味します。AnyKey の内容を確認できますが、実際に行う必要はありません。

于 2013-06-07T09:26:42.360 に答える
0

おそらく、既知のキーのリストが機能するでしょうか?

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

これが思い浮かびます。

于 2013-06-07T09:32:55.607 に答える