32位键盘挂钩意外地在64位应用程序中工作,但挂起Outlook

时间:2011-04-11 21:04:52

标签: dll windows-7 64-bit keyboard-hook windows64

已经阅读了很多关于这个的图片,图片变得更加混乱。我有一个32位应用程序安装KeyboardHook等待全局热键并唤醒。在Win 7 x64版本上运行它我注意到当按下热键时它会挂起Outlook x64版本。

所以我做了一些研究,看起来32位键盘钩子甚至不适用于64位应用程序。是时候进行更多测试......

他们的热键可以在64位记事本,字盘和便签中正常工作。我确认这些是64位应用程序,因为它们在任务管理器中没有“* 32”。不挂起应用程序,它做了它应该做的事情。但是等等...... 32位钩子dll无法加载到64位应用程序中,对吗?

查看Process Explorer显示钩子dll甚至没有加载到记事本进程中! (如果我从WOW64目录运行32位notepad.exe,我可以看到加载到进程中的dll,所以我知道我正在使用这些工具。)

所以Outlook悬挂问题可能会或可能不会相关,但为什么钩子甚至可以在64位记事本中工作?

1 个答案:

答案 0 :(得分:0)

  

我有一个32位应用程序,可以安装KeyboardHook来等待全局热键并唤醒。

如果这是您的最终目标,那么只需使用RegisterHotKey就可以更简单,更少对系统产生影响。