SetWindowsHookEx和SetWinEventHook之间的主要区别是什么(它是如何工作/依赖/目的/最小需求)?
我对使用C#/..Net从windows服务中拦截与运行Windows应用程序相关的事件感兴趣。
发布于 2014-02-25 20:55:37
SetWindowsHookEx设置低级钩子,可以拦截和重写多个系统范围内的事件和消息(比如捕获和重写键盘输入)。
SetWinEventHook允许您在没有窗口的情况下侦听窗口事件。这是更高的层次和较少的侵扰系统。
在从服务运行其他应用程序时,这两种方法都不需要。看看System.Diagnostics.Process (内置于.Net)或RunProcess on NuGet
发布于 2014-02-25 21:11:14
如果我正确理解了您的意思,您希望使用您创建的服务来拦截在操作系统和运行Windows应用程序之间流动的消息。
如果是这样,您最好的选择是SetWindowsHookEx,这将创建一个系统级别的挂钩,您将不得不过滤传递给其他应用程序。您应该注意,这要求您还需要构建c++ .dll文件,您可以从该文件调用SetWindowsHookEx函数。在编写代码时要非常小心,因为错误会锁定整个系统,您需要重新启动才能使事情恢复正常。
https://stackoverflow.com/questions/22025592
复制相似问题