首页 > 解决方案 > AutoHotkey:按住键而为真

问题描述

它应该做什么
z ->SetTimer, loop, -1
循环 ->
IfWinActive-> 按键
!IfWinActive-> 释放键

我的代码:

#SingleInstance Force

z::
    SetTimer, loop, -1
return

loop:
    IfWinActive, Minecraft 1.8.9 | LabyMod 3.6.13
    {
        ; Press key aslong true
    }
return

但我根本不知道如何模拟按键,只要某事是真的

编辑:

现在我有这个
它循环loop直到我再次按 z

loop :=0

z::
    if (GetKeyState("w"))
    { ; turns the loop off if w is already pressed
        loop :=0
        SetTimer, loop, Off
        Send {w} ; send w again so you stop running why ever minecraft is like that
    }
    else
    {
        loop :=1
        SetTimer, loop, 1
    }
return

loop:
    while (loop)
    {
        IfWinActive, Minecraft 1.8.9 | LabyMod 3.6.13
        {
            Send % "{w Down}"
        }
        IfWinNotActive, Minecraft 1.8.9 | LabyMod 3.6.13
        {
            Send % "{w Up}"
        }
    }
return

但问题是它不断按下w up,或者w down 如果我想退出游戏,它就会变得有问题,因为我不能做快捷方式,因为它一直被w down. 它应该只按下w down直到我退出然后它应该按下w up直到我再次进入我的世界

标签: while-loopautohotkeykeypress

解决方案


(经过测试)将计时器设置为 -1 出于某种原因无法使用实际键替换(键)以按住

z::
    SetTimer, loop, 1
return

loop:
    IfWinActive, Minecraft 1.8.9 | LabyMod 3.6.13
    {
        send {(key) down}
    } else {
        send {(key) up}
    }

return

推荐阅读