日期:2014-05-17  浏览次数:20852 次

.net framework 4.0 SetWindowsHookEx 疑难问题
开发工具VS2010 开发操作系统Win7 64bit 旗舰版 .net framework 选了4.0 目标平台 Any CPU。
为了获得鼠标当前位置和按键动作,用SetWindowsHookEx API hook了全局鼠标。
一切正常。
但在WinidowsXp 32bit下 SetWindowsHookEx 报 87 参数错误。
任何代码不用修改,将.net framework 选了2.0 重新编译后 Win7 64 和 Winxp 32 均正常。
由于程序的其他模块需要用到.net framework 4.0的新增功能,所以不能简单将Framework降为2.0使用,请问各位高手,如何操作,能让SetWindowsHookEx 在Winxp 32位 .net framework 4.0正常工作。
hook

------解决方案--------------------
  重新写是最好的办法
------解决方案--------------------
把目标平台改成x86试试? 32bit的程序能在64bit上运行
------解决方案--------------------
可以想个变通的办法,用.net framework2.0做一个hook程序,作为.net framework4.0程序的Hook代理,通过SendMessage来进行程序间通讯,4.0程序发送消息来控制2.0的hook程序,这样可以绕开楼主遇到的问题。