ウィンドウを待ってキーストロークを送信する AutoHotKey スクリプトを作成したいのですが、キーストロークはデフォルトで繰り返されます

ウィンドウを待ってキーストロークを送信する AutoHotKey スクリプトを作成したいのですが、キーストロークはデフォルトで繰り返されます

特定のウィンドウを待機し、そのウィンドウにキーストロークを送信する 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
}

関連情報