1

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

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

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

任何帮助,将不胜感激。

4

2 回答 2

2

无需为此任务使用 Detours,请查看:为您完成的子类外部程序

此 C++/ActiveX 解决方案将允许您在 VB6 中对当前进程之外的窗口进行子类化。我对 .NET 不太熟悉,但我知道用于 .NET 的商业解决方案 Desaware SpyWorks也提供此功能。首先做你的功课,那里可能有一个免费的解决方案,如果有,请回帖告诉我们。:)

于 2011-02-22T21:22:45.100 回答
1

如果它是一种同时影响所有按钮的方法,那么我认为这将是您要做的原始研究;我认为没有其他人觉得有必要在这种程度上规避 VB 运行时。否则,如果它只是一个特定的按钮或表单,那么子类化是一种行之有效的方法。

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

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

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

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

于 2011-02-22T21:52:05.203 回答