我有一个执行数百次的循环(代码附加),我想创建一个kill开关。如果我停止运行,我不想重新打开脚本,我需要长时间睡眠,所以我可以愚弄鼠标,就像它一样。
例如,我应该以某种方式命名我的循环吗?因为Break
没有参数,我想:没有办法指定要打破的内容。
另一个例子:我应该在循环中添加一个热键来打破?如果是这样,我该怎么做?只需将^!p::
扔进每个热键下的巢中?或者是否有另一种方法可以将热键添加到热键(例如,使用GetKeyState
)?
如果可能,请使用以下代码 show not not tell 您的答案:
^!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
}
答案 0 :(得分: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