所以我尝试在游戏中自动运行,其中地图很大,我必须跑几英里。我想打开热键(Ctrl+ Shift+A或其他东西)按运行(在游戏中,我可以运行w)。我尝试了代码,例如:
Pause On
Loop
Send w
+^a::Pause
(它可以按 w,但不能释放),就像这样:
+^a::
toggle := !toggle
while toggle
Send {w down}
(同样的问题)。这只是我的问题,或者这些代码是错误的?
所以我尝试在游戏中自动运行,其中地图很大,我必须跑几英里。我想打开热键(Ctrl+ Shift+A或其他东西)按运行(在游戏中,我可以运行w)。我尝试了代码,例如:
Pause On
Loop
Send w
+^a::Pause
(它可以按 w,但不能释放),就像这样:
+^a::
toggle := !toggle
while toggle
Send {w down}
(同样的问题)。这只是我的问题,或者这些代码是错误的?
我有一个(至少我认为)更简单的解决方案:)
#NoTrayIcon
ScrollLock::
Input, Key, ,{Enter}
Send, {%Key% Down}
return
您按下 ScrollLock(我怀疑您将其用于其他任何用途,否则将其设置为自由键),然后输入要按住的按钮的名称。
使用 Enter 键结束输入,然后程序将按住输入的键。
如果您想“抬起”键,只需按一次,它就不会再被按住。:)
ps.:我有#NoTrayIcon,因为我在后台永久运行它,但如果你想能够退出,那么只需添加如下内容:
F12::
ExitApp
return
一个愚蠢的菜鸟示例,其中 F10 是切换热键,向上/向下状态是一个变量。该变量需要预先声明以给出初始值。
老实说,我期待一个错误消息,但它似乎运行良好。
keystate=down
F10::
Send {w %keystate%}
if keystate = down
SetEnv, keystate, up
else if keystate = up
SetEnv, keystate, down
return
这是我的股票功能。我通常将它映射到 ^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
}
}
}
+^vk41:: ; shift+ctrl+a
SetTimer, % "SomeLable", % (bToggle:=!bToggle) ? 25:"Off"
KeyWait, % "vk41"
Return
SomeLable:
SendInput, % "{vk57}" ; w
Return
Toggle := 1
Q::Send, % Toggle = 1 ? ( "0", Toggle := 0 ) : ( "9", Toggle := 1 )
将 Q 更改为您喜欢的热键,并将“0”和“9”更改为您想要切换的键。确保将您的能力或武器设置为您在“0”和“9”中替换的键。
所以,假设我有一个主要和次要武器。我在游戏中将它们绑定到 9 和 0。
我按 Q 在它们之间循环以快速切换武器。或者你想要的其他东西。