在64位Windows中挂接32位进程



在window7 64位上使用键盘挂钩时遇到问题。我做这些事情:1.创建一个32位dll2.加载到应用程序并设置WindowHookEx

我已经成功地钩住了32位应用程序(Y!M,Skype…),但当我钩住我的桌面或任何64位应用程序时(记事本),该应用程序会冻结,直到我停止我的钩住应用程序。我创建了64位dll,在上面做了同样的事情,32位进程也遇到了同样的问题。

所以,我认为问题出在我的32位dll中,无法注入64位进程。但我不知道当窗口关注它时,我该如何注入64位dll进行处理

我想知道任何方法,以及如何做到这一点。或者我可以只挂接32位进程而不挂接64位进程吗?你能告诉我怎么做吗。谢谢

问题是无法将32位DLL加载到64位进程中,或将64位DLL加载在32位进程中。来自64位Windows:编程指南

32位进程无法加载64位DLL执行,64位进程也无法加载32位DLL执行。

您需要有两个版本的DLL:32位和64位。但这只是部分解决方案。此外,您还需要确定要加载DLL的进程的体系结构。WINAPI函数GetBinaryType()可以确定这一点,但它需要一条指向代码必须获取的二进制文件的路径。

最新更新