【发布时间】:2015-03-27 02:56:15
【问题描述】:
我想实现一个挂钩示例,用于从我的 WinForm 应用程序拦截消息到另一个进程,例如 'notepad' 。 (不是全局钩子,只是监听指定线程的线程钩子,HookType是WH_GETMESSAGE)
我用c++写了一个hook dll,并在c#中使用。
之后,我从开始菜单或输入 cmd -> notepad 打开记事本。我发现我可以在xp环境中从记事本获取消息,在win 7中没有发送消息。
然后,我尝试通过我的 WinForm 应用程序创建“记事本”进程(在我的表单上放置一个按钮并使用 Process.Start("Notepad.exe") 打开它),神秘的是,它在 win 7 中工作。
所以,我不知道为什么在win 7中记事本从开始菜单启动时它不起作用。
在 xp 中,无论是记事本从开始菜单启动还是通过我的应用程序启动,我都可以获得消息
【问题讨论】:
-
记事本是否以管理员身份运行? (只是一个随机的想法)