繁体   English   中英

Windows钩子在C#中的替代方法?

[英]Alternatives to windows hooks in C#?

我想知道何时正在积极使用任何/所有程序。

为此,我将使用与C#通讯的非托管C ++ dll。 有解释这个过程的文章在这里

我想知道是否还有使用系统挂钩的替代方法。

我没有看过该库的所有详细信息,但它可能会对您有所帮助。

托管Windows API

C ++不需要设置全局Windows挂钩,您只需要调用必要的winapis。

假设您只对具有与进程关联的窗口的应用程序感兴趣,那么全局钩子将比轮询更有效,更可靠。 例如,CMD提示可能不会生成GWH事件。

最终,最可靠,最有效的机制是在整个系统范围内进行注入,一个良好的开端将是Microsoft Research的Detours库。 Jefffrey Richter的经典“高级Windows编程”一书对此进行了详细介绍,提供了3种注入机制(包括如何设置系统范围的钩子)。 同样,这不需要C ++,也不一定会告诉您何时使用了应用程序。 最终,全局窗口挂钩将变得最有意义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM