2011-02-22 76 views
1

我想将我自己的DLL注入到VB6过程中,以覆盖按钮的默认点击行为。目标是调用我的方法,并且绝不会在click事件处理程序中调用原始VB6代码。拦截VB6按钮单击事件与退路

看来Microsoft Detours API可以提供帮助。这些示例演示了如何将我的DLL注入到正在运行的进程中;但我不确定我应该绕行的功能。

Idealy,我会喜欢Detours API的.Net包装。

任何帮助,将不胜感激。

回答

2

无需使用走弯路这个任务,请上网:Subclass External Programs done for you

这个C++/ActiveX技术解决方案将允许你子类窗口的当前进程外VB6。我对.NET不太熟悉,但我确实知道商业解决方案Desaware SpyWorks for .NET也提供了这种功能。首先做好功课,那里可能有免费的解决方案,如果是的话,请回复并告诉我们。 :)

+0

+ 1听起来像是为了继承我的情况。或者可能是一个钩子 – MarkJ 2011-02-23 09:10:36

1

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

对于高级VB6信息,请卡尔·彼得森的经典VB网站:

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

托管在该网站的布鲁斯·麦金尼的优秀图书 “性交的Visual Basic”:

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