0

質問

  • 基本的にタイトルが全てです!ホットキーを介してホットキーの実行を停止するにはどうすればよいですか?
  • スクリプトを閉じずにこれを行うにはどうすればよいですか?
  • ホットキーを特定のループよりも優先するように明示的に設定するにはどうすればよいですか?

説明

数百回実行されるループ (コードが添付されています) があり、キル スイッチを作成したいと考えています。実行を停止した場合にスクリプトを再度開く必要はありません。また、長時間のスリープが必要なため、そのままマウスでだますことができます。

チュートリアル休憩など、いろいろなページを見ています。

私が試したこと

たとえば、ループに何らかの名前を付ける必要がありますか? パラメータを取らないのでBreak、私は考えています:何を壊すかを指定する方法はありません。

別の例: ループを中断するには、ループにホットキーを追加する必要がありますか? もしそうなら、どうすればいいですか?^!p::各ホットキーの下の巣に投げ込むだけですか?または、ホットキーにホットキーを追加する別の方法 (たとえば、GetKeyState) はありますか?

回答形式

可能であれば 、次のコードを使用して、答えを教えないでください:

^!i::
{
    Loop 1300
    {
        Send ^+{PrintScreen}
        Sleep 1500
        MouseClickDrag, left, 0, 100, 600, 400
        Sleep 1000
        Send 1
        Sleep 500
    }
    Return
}
^!o::
{
    Loop 1323
    {
        Send ^+{PrintScreen}
        Sleep 1500
        MouseClickDrag, left, 0, 200, 600, 400
        Sleep 1000
        Send 1
    }
    Return
}
4

1 に答える 1

1

制御された停止、つまりスクリプトの特定のポイントが必要な場合は、ホットキーを使用して変数を設定し、スクリプトでその変数をテストできます。変数が設定され、IF ステートメントが true の場合、その変数をリセットしてループを終了します。そうしないと、reload コマンドを使用してランダムな時点でスクリプトを強制終了する可能性があります。このようにしてスクリプトは閉じられますが、すぐに再開されます。

^!i::
MyStopVariable:=0 ; Set the variable to 0
Loop 1300
{
    If MyStopVariable
        Exit ; Or Break if you want to finish something of after the loop
    Send ^+{PrintScreen}
    Sleep 1500
    MouseClickDrag, left, 0, 200, 600, 400
    Sleep 1000
    If MyStopVariable
        Exit ; Or Break if you want to finish something of after the loop
    Sleep 500
}
Return

^!o::
MyStopVariable:=0 ; Set the variable to 0
Loop 1323
{
    If MyStopVariable
        Exit ; Or Break if you want to finish something of after the loop
    Send ^+{PrintScreen}
    Sleep 1500
    MouseClickDrag, left, 0, 200, 600, 400
    Sleep 1000
    If MyStopVariable
        Exit ; Or Break if you want to finish something of after the loop
    Send 1
}
Return

^!s:: ; Ctrl+Alt+s = stop
MyStopVariable:=1
Return

または、元のコードを使用してリロードを追加することもできます。

^!s:: ; Ctrl+Alt+s = stop
    Reload
Return
于 2014-06-20T09:37:13.157 に答える