在记事本++中制作A HK脚本

问题描述 投票:0回答:2

我正在尝试制作ahk脚本以尝试简化一次性脚本。我几乎在一个游戏中一个接一个地运行了1000多个命令。目前我有这样的事情。我将所有命令都放在一个文本文件中,而没有任何ahk编码。

.waypointadd 1 100234 40 -469
.waypointadd 2 99549 34 5
.waypointadd 3 100615 37 -160
.waypointadd 4 100817 27 -457
.waypointadd 5 100503.5 10.5 -647.5
.waypointadd 6 100494.5 10.5 -625.5

这会持续一段时间。我不喜欢使用表达式之类的东西,并且非常想让它按Enter,键入命令,然后按Enter,然后转到下一个。我显然不能手动执行此操作。我曾尝试使用一些基本的替换表达式和东西,但不确定如何做到这一点。

最后我希望它看起来像这样

send {enter}
send (command 1)
send {enter}
send {enter}
send (command 2)
send {enter}
autohotkey
2个回答
0
投票

您可以将其绑定到类似的键上。...

1::
loop, 1 {
  send {enter}
  send (command 1)
  send {enter}
  send {enter}
  send (command 2)
  send {enter}
}

或在您按一个键时执行功能。 LMK(如果有帮助的话)

doSomething() {
  send {enter}
  send (command 1)
  send {enter}
  send {enter}
  send (command 2)
  send {enter}
}

1::
doSomething()

0
投票

您可以将所有命令存储在剪贴板中(按CTRL + C组合,然后循环浏览所有命令:

Loop, Parse, Commands, `n, `r ;split by linefeed, ignore carriage return
{
    SendInput, % A_LoopField "{Enter 2}"
    Sleep, 1000 ;however long you need
}

获取命令的方法,我只是从剪贴板加载脚本而已,应该很方便,只需复制所需的命令块然后启动脚本即可。然后是parsing loop。然后使用SendInput发送当前命令,然后按两次SendInput。另外,如果您的游戏支持从剪贴板粘贴,最好将要发送的内容加载到剪贴板,然后发送CTRL + V。

如果使用SendInput的代码执行得太快,您可以尝试切换到正常的Enter,甚至可以使用Send来增加按键之间的延迟。

© www.soinside.com 2019 - 2024. All rights reserved.