昨日、AutoHotkeyスクリプトのデバッグ中に、誤ってMouseMove
およびMouseClick
イベントの無限ループをトリガーしました。 0.5秒ごとに、マウスが画面のランダムな部分をクリックします。
タスクマネージャーでAHKを終了しようとして失敗した後、スクリプトを終了するためにコンピューターの電源を切ることになりました。
アクティブなAutoHotkeyスクリプトを停止するにはどうすればよいですか?
アクティブなスクリプトを終了する最も信頼できる方法は、緊急事態 ExitApp
ホットキーを先取りして含めることです。一般的な方法は、スクリプトの最後に次を配置することです。
_Esc::ExitApp ; Exit script with Escape key
_
また、ホットキーを pause 、 suspend 、または reload に設定することもできます。
_^!p::Pause ; Pause script with Ctrl+Alt+P
^!s::Suspend ; Suspend script with Ctrl+Alt+S
^!r::Reload ; Reload script with Ctrl+Alt+R
_
Windows 10/8/7/Vistaでは、キーボードショートカットですばやくログオフできます Ctrl+Alt+Delete、 に続く Alt+L。
これは、Ctrl + Alt + Deleteを押すと、AutoHotkeyなどのプログラムで操作できない特別なウィンドウが開くためです。
キーボードとマウスを制御できる場合は、タスクバーのAutoHotkeyの緑色のHアイコンを右クリックして[終了]を選択すると、スクリプトを終了できます。
より一般的な解決策として、AHKユーザーNoneは AHKPanic()
を作成しました。これは、実行中の他のすべてのスクリプトを一時停止、一時停止、または強制終了できます。 (オプションで、それを呼び出したスクリプトを終了します)
_AHKPanic(Kill=0, Pause=0, Suspend=0, SelfToo=0) {
DetectHiddenWindows, On
WinGet, IDList ,List, ahk_class AutoHotkey
Loop %IDList%
{
ID:=IDList%A_Index%
WinGetTitle, ATitle, ahk_id %ID%
IfNotInString, ATitle, %A_ScriptFullPath%
{
If Suspend
PostMessage, 0x111, 65305,,, ahk_id %ID% ; Suspend.
If Pause
PostMessage, 0x111, 65306,,, ahk_id %ID% ; Pause.
If Kill
WinClose, ahk_id %ID% ;kill
}
}
If SelfToo
{
If Suspend
Suspend, Toggle ; Suspend.
If Pause
Pause, Toggle, 1 ; Pause.
If Kill
ExitApp
}
}
_
あなたが空想を得て、Windowsコマンドプロンプトからそれを止めたいならば、
次を使用して、すべての自動ホットキースクリプトを停止します。
taskkill /im "autohotkey.exe"
特定のスクリプトを停止するには:
wmic process where "commandline like '%%MyScript.ahk'" delete
ループを実行せずに特定のウィンドウを閉じたい場合は、次を作成しました。
DetectHiddenWindows, On
path = %A_Desktop%\Test.ahk - AutoHotkey v1.1.26.01
path2 = %A_Desktop%\Test2.ahk - AutoHotkey v1.1.26.01
WinClose, %path%
WinClose, %path2%
**注1:**ファイル名+ "-AutoHotKey blah blah blah"(これは、時計に近い右下隅に隠れているウィンドウを開いたときのホットキーのウィンドウ名です)
**注2:**ファイル名は大文字と小文字を区別する必要があります。