1

我已经为流放之路(我正在玩的游戏)编写了一个自动热键,当我按下一个键(我的空格键)时一次按下 5 个按钮。目前,当我按下空格键时,自动热键也会按下 q、e、w、空格和 Z。(全部 5 个)

但是,当我聊天并按空格键时,我会在聊天中输入“qew z”。这非常烦人,所以我创建了一个修复程序:“当我按下键盘上的 Enter 键时关闭自动热键脚本,然后在我再次按下 Enter 时将其重新打开。” (大多数游戏使用回车键开始聊天)这有效,但一段时间后我的脚本会与游戏不同步。它会在我聊天时打开,打断我的聊天,然后在我聊天结束时关闭。

我发现这个问题有时是我同时按下 shift 或 control 和 Enter 的结果。这会打开聊天,但不会暂停脚本。为了解决这个问题,我在输入脚本前添加了 ^ 和 +,但它仍在寻找不同步的方法!!!!

注意:#Ifwinactive,流放路径位于顶部,以防止在我没有打开流放路径时触发此脚本。这非常有效(我认为)。

请在下面检查我的代码。我有两个问题:

  1. 是什么导致我的脚本与游戏中的聊天不同步?

  2. 什么是我的问题的最佳解决方案,以便在我打开聊天时脚本不会运行,并且在我结束聊天时总是再次运行?

提前致谢!

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
#Warn  ; Recommended for catching common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

#Ifwinactive, Path of Exile

Space::
Send {q}
Send {e}
Send {w}
Send {Space}
Send {z}
Return

^Space::
Send {q}
Send {e}
Send {w}
Send {Space}
Send {z}
Return

~Enter:: 
 Suspend Permit
 Suspend
 Return

~!Enter:: 
 Suspend Permit
 Suspend
 Return

~^Enter:: 
 Suspend Permit
 Suspend
 Return

~+Enter::
 Suspend Permit
 Suspend
 Return
4

1 回答 1

2

通配符 * 星号是您想要的。它的工作原理是允许热键触发,即使任何键组合被按住。无需重复代码,另一个上面的空白热键将触发下面的一个。同样,没有理由像您一样输入所有这些键。让它们内联工作并且很整洁。

尝试:

SendMode Input 

#Ifwinactive, Path of Exile

^Space::
$Space::Send, qew{Space}z

*~Enter::Suspend
于 2017-01-27T08:30:59.710 回答