我在实现全局键盘钩子时遇到了一个有趣的问题。
我写了一个用来设置钩子的dll,然后写了一个加载dll并处理钩子结果的应用程序(Delphi)。这是今天下午在我工作的PC上完成的,经过一些测试,我认为它是100%工作的。
我刚刚在家里测试了相同的应用程序和dll,我没有收到任何错误,但应用程序似乎也没有获得任何数据。
虽然我的工作机器是SP2,而这台机器是SP3,但两台机器都是WinXP。
是否在Win32应用程序接口中有一些更改,这将导致此故障,或者该问题是否与最近发布的某些A/V / Spyware / MS更新有关?
我希望在我花几个小时调试之前,在座的人会知道这可能发生的一个明显的原因。
谢谢!
发布于 2009-02-03 16:46:51
实际上,有些A/V不喜欢自制的挂钩。我在一些机器上的鼠标钩子也遇到了同样的问题,而且它不依赖于service pack版本。
发布于 2009-02-03 16:24:40
你家里的电脑上有调试器吗?您是否通过钩子接收到任何消息?会不会是其他应用程序挂起了,而没有将消息传递到钩子链中?
顺便说一句,我喜欢用虚拟机进行这种测试。保持一个干净的XP安装。安装SP2并测试您的应用程序。再次回滚到全新安装,然后安装SP3。再次尝试您的应用程序。这样你就会知道它是否是SP3,因为没有其他东西会把事情搞糟。我喜欢保留一组不同配置的快照。
发布于 2009-02-03 16:39:50
是的,我可以。我还没有在这台机器上安装Delphi,但我想我可能不得不这样做。我想要的是低垂的果实。如果有一个显而易见的答案,就没有必要经历调试的所有麻烦,并希望找到可能的问题。
我的第一个怀疑是API在某个地方发生了变化。
正如我所提到的,这个应用程序在我的工作机器上运行得非常完美。
https://stackoverflow.com/questions/507791
复制相似问题