gpt4 book ai didi

c# - 如何使用全局 Hook 确定按下的键的主机应用程序?

转载 作者:行者123 更新时间:2023-11-30 18:35:11 29 4
gpt4 key购买 nike

我对特定应用程序(如 Microsoft Word)的键盘监听很感兴趣。谷歌搜索显示解决此问题的唯一方法是使用全局键盘 Hook 。

全局键盘钩子(Hook)监听所有 事件应用程序中的所有 按键事件。例如,用户在 Microsoft Word 中键入文本(我需要捕获这些事件)并同时在 Facebook 上向他的 friend 写一些消息。这意味着我的键盘监听器也处理 Facebook 消息,但这对我来说是多余的信息。

所以我的问题是,如何确定最后按下的键的主机应用程序?或者换句话说,我如何确定当前事件的应用程序以了解按键位置的“上下文”?

最佳答案

如果 GetForegroundWindow 的想法不适合你。由于您已经有一个用 Word 加载的 COM 插件,SetWindowsHookEx ,最后一个参数允许您传入线程 ID。因此,在您的 COM 插件中,您可以为 Word 使用的每个线程添加一个 Hook ,或者通过反复试验可能找出您需要 Hook 的线程。 DllMain (或 DllEntryPoint)可以收到所有新线程的通知,因此这可能是设置 Hook 并释放它们的好地方。

最终,防病毒软件可能会开始警告这些类型的 Hook ,但到目前为止,我编写的使用它们的应用程序已安装在 100,000 台 PC 上,而且我们的此类支持电话为零。真是太神奇了。

关于c# - 如何使用全局 Hook 确定按下的键的主机应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15358371/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com