有什么方案可以在 Windows 下实现驱动级的宏吗

222 天前
 mouyase

需求

我想要实现在某些游戏(DNF)中,某键按住后自动连发,仅游戏内生效,且不影响正常打字,且同时可以响应多个按键。 在此基础上还想要一些高级的可以编程的宏功能,类似自动连招。

当前状况

我之前使用 AHK 开发了一套工具,上面说的功能都能实现。但是 AHK 最低的时间间隔只能是 16ms(这个好像是和系统时钟有关),并且 CPU 占用略高,在高负载的时候延迟会变高。 然后有朋友给我推荐了 reWASD ,这个东西我试过之后,发现 cpu 占用很低,并且延迟也非常低,但是一个是他收费,一个是他影响打字,并且不太好做宏。 本人更希望可以找到一些免费的方案,以用于给更多的游戏玩家提供方便。

附加情况

本人有一定的 node 开发经验,但是对 win32 编程不太擅长,所以手搓驱动估计是不太行了,不知道有没有现成方案可以参考。

信息记载

我尝试过使用Interception驱动,但是这个目前有一个问题,就是在响应事件的时候,第一次按下触发后,要等待 1 秒左右才有后续的触发,有点类似我们键盘平时按住一个字母一样,但是这种并不能满足需求。参考https://github.com/oblitum/Interception/issues/183

1487 次点击
所在节点    问与答
20 条回复
TomVista
222 天前
鼠标键盘宏
mouyase
222 天前
@TomVista 无效回答
yorath
222 天前
vmebeh
222 天前
FindWindow 根据窗口类和名来找到目标窗口的 hWnd
GetForegroundWindow 定期获取最前的窗口 hWnd
比较两个 hWnd 来判断当前窗口是不是目标窗口
用 SendInput 发按键消息
如果需要拦截部分按键消息就需要底层键盘钩子:SetWindowsHookEx
mouyase
222 天前
@yorath 这玩意是个虚拟键盘驱动?
@vmebeh 这是 VC 的实现方式吗?我用 Tarui 能不能做到这些呢
vmebeh
222 天前
@mouyase 能用 win32 api 的都可以吧,我用 vb……
mouyase
222 天前
@vmebeh win32 编程我是一点都不懂,苦手呀……
jim9606
222 天前
你确定你这么在内核里改键盘事件不会被反作弊认定为外挂?
你还不如考虑下有可编程固件的小键盘。
ly841000
222 天前
@mouyase 不要想了,你实现不了,实现了现在也驱动都要数字证书,有数字证书 dnf 也会封号
SkywalkerJi
222 天前
要过反作弊吗?
需要的话我觉得还是放弃吧,不如乖乖给罗技雷蛇交钱。
minami
222 天前
程序的 16ms 定时精度可以改的,对应的 WIN32 接口是 https://learn.microsoft.com/en-us/windows/win32/api/timeapi/nf-timeapi-timebeginperiod
minami
222 天前
@minami 搜了下 AHK 的文档不是有写吗 https://www.autohotkey.com/docs/v1/lib/Sleep.htm
ysc3839
222 天前
你想低成本搞的话,那还是别整驱动了,有没有现成的驱动还不好说,就算有也很难绕过反作弊。
现在更多是用个单片机模拟 USB 键鼠。
danbai
222 天前
dd 键鼠驱动
pinkbook
222 天前
花钱买外挂,外挂开发人员就是整天研究这些的的,还能帮你规避一下容易过的反作弊
mouyase
222 天前
@minami 我试过他这个,虽然看起来 Sleep 的精度变高了,但是反而我在游戏里的输入频率变低了,我不清楚为什么,但是确实不能用
mouyase
222 天前
@SkywalkerJi 不需要,连发这东西好多年一直大活都在用,他游戏里自带就三种不同的连发,只不过在打团帧率低的时候基本都失灵罢了
mouyase
222 天前
@danbai dd 并不能解决输入延迟
danbai
222 天前
@mouyase 为啥他不是支持设置按下抬起吗时间都可以控制
mouyase
222 天前
@danbai 如果是在 ahk 里用,最小的一个命令执行间隔就是 16ms ,而且 dd 要联网,有时候还会导致蓝屏,属实不好用

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

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

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

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

© 2021 V2EX