如何使用 AutoHotkey 将字符串发送到游戏的文本输入行?

如何使用 AutoHotkey 将字符串发送到游戏的文本输入行?

我玩的游戏有一个单行聊天框供用户输入。它不允许粘贴文本,也不能创建一组预设的问候语/消息等。所以我需要一个 AutoHotkey 脚本,其中不同的按键会插入不同的消息。

我可以将字符串发送到记事本、浏览器等,但不知道如何如上所述将其发送到游戏中。

我是一名经验丰富的程序员,但今天才下载了 AutoHotkey。我也知道这是可能的,因为已经为这个特定的游戏做了这件事。

答案1

右键单击状态栏中的 AHK 图标,然后选择“编辑脚本”。删除其中的内容(我假设您自己没有编写任何脚本)并将其粘贴到其中。

<your hotkey>::Send <your text>[{enter} (if you want it to automatically send]

保存并关闭它,再次右键单击图标,然后单击“重新加载脚本”。在使用热键之前,您需要将光标放在聊天框中,除非有一个键可以按下以将焦点放在聊天框上。在这种情况下,请将该键放在脚本中的 之前<your text>。如果您不确定如何操作,请告诉我键是什么,我会将其添加到答案中。

答案2

这最终对我有用:

  1. 需要游戏窗口标题才能激活它(如果您的游戏是全屏的,那么使用 ALt TAB ,窗口标题就会很明显) - 注意 - 在游戏聊天窗口中使光标处于活动状态并不会使窗口对于这种类型的东西处于活动状态!
  2. 你需要暂停一下,否则文本将无法被理解
  3. 热键必须从游戏外部调用!可能有更好的方法来实现这一切,但它有效,所以现在就这样吧!
  4. 用无标题 - 记事本替换 WWIIOL(在记事本中打开一个新的 txt 文档,您将看到它是如何工作的 - 是的,您可以通过其他方式执行此操作,但对于游戏来说,这是我能找到的所有有效方法。

脚本:

!m::
IfWinExist, WWIIOL 
{WinActivate ; use the window found above
 Sleep, 200 ; wait for 200ms
 Send {F6} HELLO {Enter}
}
else
 Msgbox Hello
return

相关内容