SendInput通常是发送击键和鼠标点击的首选方法,因为它具有出色的速度和可靠性。在大多数情况下,SendInput几乎是即时的,即使在发送长字符串时也是如此。由于SendInput速度非常快,因此它也更可靠,因为其他窗口可能会意外弹出并拦截击键。事实上,在SendInput期间用户输入的任何内容都被推迟到之后,可靠性得到进一步提高。
如果SendInput
通常是首选,那么sent
在ahk中更好的用例是什么? Sent
何时赢得Sent
与SentInput
决定?
答案 0 :(得分:1)
我通常使用SendInput
,因为我喜欢几乎瞬时的输入。但是我遇到了一些实际限制:
游戏等一些应用程序不喜欢这种快速击键,因为可能存在防止僵局的规则。
有些应用程序无法快速处理接收击键,而且只会陷入困境。
我有一个应用程序允许按Tab键在字段之间移动光标。
SendInput
命令只是为了加快速度,并经常导致混合结果 SendInput
太快,无法重放某些内容以进行调试。例如,当我想观看文本如何插入到非常复杂的表单中的字段时。
理论上Send
你可以插入一个文本blob并随机按住shift键以增加输入字符时的熵。可以说,我无法想到为什么这会有用。
答案 1 :(得分:1)
只有当前设置出现问题时,才应考虑在SendPlay
和SendInput
之间切换。如果在激活长宏时键入,则SendInput会导致问题。您的命令可能与宏混合导致意外行为。教程说SendPlay
“在旧游戏中不受支持”,但我从来没有遇到过这方面的问题。有人可能会评论“你还没有使用过AHK”。也许。
此外,在从SendPlay切换到SendInput之前,您应该尝试将宏分成两部分。例如,Starcraft2中的“保存控制组,执行操作,召回控制组”失败。将其拆分为Send "save control group, do stuff"; Sleep 10; Send "recall control group";
即可。