主要是拿来修改某游戏的按键映射,那个游戏的按键控制面板实在是太简陋了,所以打算用 AHK 让一个键能映射到几个按键上,虽然一个键能发出好几种命令,但其实在不同场景下只有一种命令能工作。
因为自带的映射功能只能一个键映射到另一个键上,所以就绕个弯路用 Send 来实现。但是 Send 的效率太低,有时候能立即反应,有时候要按好几次才能反映过来。而 SendInput 在游戏里不工作,SendPlay 在 vista 之后就彻底废了。所以又只能转回头解决 Send 的效率问题了,有没又什么好的解决办法?
目前尝试过增加延时(SetKeyDelay),和使用钩子(#UseHook),但效果都不尽如人意。
不知道 AHK 脚本编译后的效率核 C 比如何,如果用 C 自己实现的话,会提升效率吗。
代码:
a::Send {Enter}
1
noe132 2018-09-03 08:37:51 +08:00 via Android
SendInput 试试用管理员权限执行脚本?
有时候会有这个问题 另外设置脚本 cpu 优先级最高能改善延迟的问题 |
2
AX5N OP @noe132
其实退一步来讲,就算能运行 SendInput 我也没法用,因为我那游戏必须要有至少 1 的延迟,否则按键触发不出来,而 SendInput 无法设置延迟。 CPU 优先级我也尝试过,无果。 |
3
huaxianyan 2018-09-03 09:02:22 +08:00
down 和 up 有没有试试呢?我之前碰到 send 但是触发不了的时候我就让他按到能触发为止
|
4
loqixh 2018-09-03 09:48:22 +08:00
不是效率问题, 是游戏一般用 DirectInput, 没处理到你的消息
|