特定のウィンドウを待機し、そのウィンドウにキーストロークを送信する AutoHotKey スクリプトが必要です。ただし、待機はループ内で行われるため、キーは何度も送信されます。
Windows 電卓を待ってから「12345」を送信したいとします。私の最初の試みは次の通りです。
#SingleInstance force
Loop
{
WinWaitActive, Calc
{
Send, 12345
}
このスクリプトはループから抜け出していないため、明らかに「12345」を何度も送信しています。
send ステートメントの後に「break」を挿入すると、ループは終了しますが、スクリプト全体も終了します。
これを処理するための標準的なパターンは何ですか?
答え1
12345
ウィンドウを再度アクティブにするまで(または同じ名前の別のウィンドウをアクティブにするまで)送信を停止したいと仮定します。WinWaitNotActive
#SingleInstance force
Loop
{
WinWaitActive, Calc
{
Send, 12345
WinWaitNotActive, Calc
}