【问题标题】:WH_CBT hook another thread works in XP but Win7WH_CBT 挂钩另一个线程在 XP 但 Win7 中工作
【发布时间】: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 中,无论是记事本从开始菜单启动还是通过我的应用程序启动,我都可以获得消息

【问题讨论】:

  • 记事本是否以管理员身份运行? (只是一个随机的想法)

标签: c++ hook intercept


【解决方案1】:

我自己解决了这个问题。 只需在正确的平台上生成 c++ dll .. win7 基于 x64 ,然后,一切正常。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多