【发布时间】:2009-06-27 15:07:58
【问题描述】:
我正在为游戏的插件开发一个界面。我不能使用游戏 API(有几个原因,包括代码必须与游戏无关),我需要从用户那里获取键盘输入,所以我决定使用键盘挂钩 (WH_KEYBOARD) 来处理用户满足特定条件时输入。
问题是,虽然我可以正确接收和处理输入,但当我的钩子返回 TRUE 而不是 CallNextHookEx 时,系统似乎需要花费大量时间(远超过 800 毫秒)才能让事情按预期进行,这是不可接受的因为它甚至不允许流畅的打字体验。
我必须实现的是阻止按键消息到达 WndProc,所以问题是:我可以做些什么来实现我的目标,而不会对游戏性能造成太大影响,以至于结果将是不可接受的?
编辑:由于特定要求(使用反作弊的游戏可能会在我的代码中产生问题,尽管它与作弊无关)子类化活动的 wndproc 不是一种选择。
【问题讨论】: