首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将键盘击打限制为单进程

将键盘击打限制为单进程
EN

Stack Overflow用户
提问于 2012-04-11 03:02:56
回答 1查看 360关注 0票数 3

我有一个游戏运行,我试图在游戏中显示一个覆盖;用户可以输入他的详细信息。这里的问题是用户输入的击键对游戏源可用,我想限制击键仅覆盖。

我使用原生CEF来显示覆盖图,其中使用c++来呈现内容。

有没有办法以安全的方式做这件事,这样用户的详细信息就不会暴露给任何其他程序/进程。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2012-04-11 03:14:57

您可以尝试使用SetWindowHookEx。通过这种方式,您可以将发送到进程的所有键盘消息挂接起来,并完全停止传递它们(例如,在您自己的应用程序中处理它们,而不需要焦点)。这是一种非常健壮的方式,但一些版权保护可能不喜欢它。

正常的步骤是:

  • 创建一个DLL (必须是因为您需要将它加载到另一个进程/地址空间),该DLL挂接windows消息并执行第一次筛选。通常,您可以使用某种IPC机制来形成您自己的流程。如果您不希望消息到达,您可以在那里停止链。
  • 当IPC调用到达您自己的窗口时;处理它,就像您自己收到键盘消息一样。注意焦点等。

唯一不能以这种方式捕获的是,您试图改变的应用程序行为是否依赖于GetAsyncKeyState()。在这种情况下,您唯一的选择是使用将您的DLL注入另一个地址空间,并挂钩调用本身,但这是更高级别的黑客攻击。

一句忠告:在开发windows钩子软件时:经常保存,经常保存!如果你犯了一个错误,你可能会一下子崩溃一大堆应用程序……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10094817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档