AutoHotkey 的 Send 效率太低怎么办

2018-09-03 08:04:57 +08:00
 AX5N

主要是拿来修改某游戏的按键映射,那个游戏的按键控制面板实在是太简陋了,所以打算用 AHK 让一个键能映射到几个按键上,虽然一个键能发出好几种命令,但其实在不同场景下只有一种命令能工作。

因为自带的映射功能只能一个键映射到另一个键上,所以就绕个弯路用 Send 来实现。但是 Send 的效率太低,有时候能立即反应,有时候要按好几次才能反映过来。而 SendInput 在游戏里不工作,SendPlay 在 vista 之后就彻底废了。所以又只能转回头解决 Send 的效率问题了,有没又什么好的解决办法?

目前尝试过增加延时(SetKeyDelay),和使用钩子(#UseHook),但效果都不尽如人意。

不知道 AHK 脚本编译后的效率核 C 比如何,如果用 C 自己实现的话,会提升效率吗。

代码:

a::Send {Enter}
2844 次点击
所在节点    程序员
4 条回复
noe132
2018-09-03 08:37:51 +08:00
SendInput 试试用管理员权限执行脚本?
有时候会有这个问题
另外设置脚本 cpu 优先级最高能改善延迟的问题
AX5N
2018-09-03 08:59:56 +08:00
@noe132
其实退一步来讲,就算能运行 SendInput 我也没法用,因为我那游戏必须要有至少 1 的延迟,否则按键触发不出来,而 SendInput 无法设置延迟。

CPU 优先级我也尝试过,无果。
huaxianyan
2018-09-03 09:02:22 +08:00
down 和 up 有没有试试呢?我之前碰到 send 但是触发不了的时候我就让他按到能触发为止
loqixh
2018-09-03 09:48:22 +08:00
不是效率问题, 是游戏一般用 DirectInput, 没处理到你的消息

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/485498

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX