4

所以我尝试在游戏中自动运行,其中地图很大,我必须跑几英里。我想打开热键(Ctrl+ Shift+A或其他东西)按运行(在游戏中,我可以运行w)。我尝试了代码,例如:

Pause On
Loop
Send w
+^a::Pause

(它可以按 w,但不能释放),就像这样:

+^a::
toggle := !toggle

while toggle
    Send {w down}

(同样的问题)。这只是我的问题,或者这些代码是错误的?

4

5 回答 5

1

我有一个(至少我认为)更简单的解决方案:)

#NoTrayIcon

ScrollLock::

    Input, Key, ,{Enter}

    Send, {%Key% Down}

return

您按下 ScrollLock(我怀疑您将其用于其他任何用途,否则将其设置为自由键),然后输入要按住的按钮的名称。

使用 Enter 键结束输入,然后程序将按住输入的键。

如果您想“抬起”键,只需按一次,它就不会再被按住。:)

ps.:我有#NoTrayIcon,因为我在后台永久运行它,但如果你想能够退出,那么只需添加如下内容:

F12::
    ExitApp
return
于 2013-10-24T14:19:58.497 回答
0

一个愚蠢的菜鸟示例,其中 F10 是切换热键,向上/向下状态是一个变量。该变量需要预先声明以给出初始值。

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

keystate=down

F10::
Send {w %keystate%}
if keystate = down
SetEnv, keystate, up
else if keystate = up
SetEnv, keystate, down
return
于 2014-04-20T09:45:06.120 回答
0

这是我的股票功能。我通常将它映射到 ^W 或 Q。按 w 或 s 将取消它。十分简单。

HoldW(){
    SendInput {w up}{w down}
    Loop
    {
        Sleep 100
        GetKeyState state, w
        if state = u
            return
        If GetKeyState("s")
        {
            SendInput {w up}
            return
        }
    }
}
于 2013-10-11T16:56:42.640 回答
0
+^vk41:: ; shift+ctrl+a
   SetTimer, % "SomeLable", % (bToggle:=!bToggle) ? 25:"Off"
   KeyWait, % "vk41"
   Return

SomeLable:
   SendInput, % "{vk57}" ; w
   Return
于 2013-10-08T21:39:37.390 回答
0
Toggle      := 1
Q::Send, % Toggle = 1 ? ( "0", Toggle := 0 ) : ( "9", Toggle := 1 )

将 Q 更改为您喜欢的热键,并将“0”和“9”更改为您想要切换的键。确保将您的能力或武器设置为您在“0”和“9”中替换的键。

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

我按 Q 在它们之间循环以快速切换武器。或者你想要的其他东西。

于 2017-08-22T08:02:05.383 回答