AutoHotKey - 使当前脚本'切换'

use*_*810 2 autohotkey

所以我需要下面的当前脚本,才能切换.

目前,该脚本仅在按住F8键时才起作用...这会击败afk脚本.大声笑

无论如何,这是脚本:

$F8::  
Loop
{
    if not GetKeyState("F8", "P")
        break  
    Click right
    Click
    Send {Numpad7 down}
    Send {Numpad7 up}
}
return
Run Code Online (Sandbox Code Playgroud)

有人能把这变成一个toggle令人高兴的吗?任何帮助深表感谢!

MCL*_*MCL 6

您尝试使用切换变量(根据评论中的代码)是正确的方法,但缺少一些东西:

  1. 始终初始化切换变量.否则,你怎么能确定Toggle := !Toggle单一化的是Toggle什么呢?它可能是truefalse; 大多数编译器甚至不允许它.
  2. 我总是建议在可能的情况下使用计时器,特别是对于重复性任务,可能会经常重复使用.
  3. 以最大速度发射键序列很少是必要的.无可否认的速度是由SetBatchLines和有效地调节SetKeyDelay.但是最迟当这些延迟减少时,发送速度不仅会过度,而且会影响目标应用甚至系统性能.这就是为什么SleepSetTimer应该使用适当的延迟.

这是一个未经测试的建议:

toggle := false
$F8::
    if(toggle) {
        toggle := false
        SetTimer, SendSomething, Off
    } else {
        toggle := true
        ; Choose a delay here!
        SetTimer, SendSomething, 100
    }
return

SendSomething:
    Click right
    Click
    Send {Numpad7}
return
Run Code Online (Sandbox Code Playgroud)