Loops 在“自动热键”中使用热键切换键

Loops 在“自动热键”中使用热键切换键,loops,toggle,autohotkey,hotkeys,Loops,Toggle,Autohotkey,Hotkeys,所以我尝试在一个地图很大的游戏中自动跑步,我必须跑几英里。我想打开热键(Ctrl+Shift+A或其他)按跑步键(在游戏中,我可以用w跑步)。 我试过代码,比如: Pause On Loop Send w +^a::Pause (它可以按w键,但不能释放),如下所示: +^a:: toggle := !toggle while toggle Send {w down} F12:: ExitApp return (同样的问题)。 这只是我的问题,还是这些代码错了?这是我的库

所以我尝试在一个地图很大的游戏中自动跑步,我必须跑几英里。我想打开热键(Ctrl+Shift+A或其他)按跑步键(在游戏中,我可以用w跑步)。 我试过代码,比如:

Pause On
Loop
Send w
+^a::Pause
(它可以按w键,但不能释放),如下所示:

+^a::
toggle := !toggle

while toggle
    Send {w down}
F12::
    ExitApp
return
(同样的问题)。
这只是我的问题,还是这些代码错了?

这是我的库存功能。我通常将其映射到^W或Q。按W或s将取消它。简单的豌豆

+^vk41:: ; shift+ctrl+a
   SetTimer, % "SomeLable", % (bToggle:=!bToggle) ? 25:"Off"
   KeyWait, % "vk41"
   Return

SomeLable:
   SendInput, % "{vk57}" ; w
   Return
HoldW(){
    SendInput {w up}{w down}
    Loop
    {
        Sleep 100
        GetKeyState state, w
        if state = u
            return
        If GetKeyState("s")
        {
            SendInput {w up}
            return
        }
    }
}
我有一个(至少我认为)简单得多的解决方案:)

您按下ScrollLock(我怀疑您是否使用它来做其他任何事情,否则将其设置为自由键),然后输入要按下的按钮的名称

  • 如果你想保留一个字符,你只需要把它写进去
  • 对于其他密钥,您可以在此处找到名称:
  • 鼠标:左键为L,右键为R,中键为M
用回车键结束输入,然后程序将按住回车键

如果您想“举起”键,只需按一次,它将不再被按下。:)

注:我有#NoTrayIcon,因为我在后台永久运行它,但是如果你想退出,只需添加如下内容:

+^a::
toggle := !toggle

while toggle
    Send {w down}
F12::
    ExitApp
return

一个愚蠢的noob示例,其中F10是切换热键,而up/down状态是一个变量。需要预先声明变量以给出初始值

老实说,我期待一个错误消息,但它似乎运行良好

keystate=down

F10::
Send {w %keystate%}
if keystate = down
SetEnv, keystate, up
else if keystate = up
SetEnv, keystate, down
return
将Q更改为首选热键,将“0”和“9”更改为要切换的键。确保将你的能力或武器设置为你在“0”和“9”中替换的键

所以,假设我有一个主要的和次要的武器。我在游戏中将他们绑定到9和0


我按Q键在它们之间循环以快速切换武器。或者您需要的其他信息。

是的,代码错误,您可能需要从这里学习:。同样,当在编程环境中使用时,代码的复数形式是
code
,而不是
code
。它不起作用。问题是一样的:它开始持有“w”,但它不会释放它。这并不坏,但它有一个可以避免的循环!而且它有点过于复杂了。:)嗨,我同意这看起来太复杂了。我发现,除此之外,没有什么能让我获得我所追求的精确细微的行为(主要是它如何关闭)。幸运的是,我在性能上没有问题,我尝试的每一款游戏都可以使用它,所以我只需要将热键映射到该功能。也就是说,我一直在与GetKeystate进行斗争,因此我确信在保留该行为的同时还有改进的余地。我之前也使用过GetKeystate,但不知何故,我意外地发现,如果autohotkey按住的键再次按下并释放,autohotkey将不再尝试按住它。这是一个非常幸运的发现,因为我不再需要编写发布部分了!:D