1

ボタンのデフォルトのクリック動作をオーバーライドするために、独自の DLL を VB6 プロセスに挿入したいと考えています。目標は、私のメソッドを呼び出し、クリック イベント ハンドラーで元の VB6 コードを呼び出さないことです。

Microsoft Detours API が役立つようです。サンプルは、実行中のプロセスに DLL を挿入する方法を示しています。しかし、迂回すべき機能がわかりません。

Detours API の .Net ラッパーがあれば理想的です。

どんな助けでも大歓迎です。

4

2 に答える 2

2

このタスクに Detours を使用する必要はありません。チェックアウトしてください: Subclass External Programs done for you

この C++/ActiveX ソリューションを使用すると、VB6 の現在のプロセス外でウィンドウをサブクラス化できます。私は .NET にはあまり詳しくありませんが、商用ソリューションのDesaware SpyWorks for .NETにもこの機能があることは知っています。最初に宿題をしてください。おそらく無料の解決策があるでしょう。もしそうなら、投稿して私たちに知らせてください. :)

于 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 に答える