拦截VB6按钮单击带有绕行的事件

时间:2011-02-22 20:02:14

标签: .net vb6 detours

我想将自己的DLL注入VB6进程,以覆盖按钮的默认单击行为。目标是调用我的方法,而不是在click事件处理程序中调用orig VB6代码。

似乎Microsoft Detours API可以提供帮助。这些示例向我展示了如何将我的DLL注入到运行过程中;但我不确定我应该绕道而行。

理想情况下,我会喜欢Detours API的.Net包装器。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:2)

无需使用Detours执行此任务,请查看:Subclass External Programs done for you

这个C ++ / ActiveX解决方案允许您在VB6中将当前进程外的窗口子类化。我不太熟悉.NET,但我知道商业解决方案Desaware SpyWorks for .NET也提供了这个功能。先完成你的作业,那里可能有一个免费的解决方案,如果有的话,请回复并告诉我们。 :)

答案 1 :(得分:1)

如果它是一种影响所有按钮的方法,那么我认为这将是你要做的原创研究;我认为没有其他人觉得有必要绕过这个程度的VB运行时。否则,如果它只是一个特定的按钮或形式,子类化是经过验证的方法。

有关高级VB6信息,请查看Karl Peterson的Classic VB网站:

http://vb.mvps.org/samples/

在该网站上托管的是Bruce McKinney的优秀书籍“Hardcore Visual Basic”:

http://vb.mvps.org/hcvb.asp