0

既存のウィンドウをハイジャックして、所有している Winforms の内容に置き換えようとしています。フォームの内側のハンドルを上書きしたいものと交換するのはかなりクールだと思いました。

乾杯、フロリアン

4

1 に答える 1

0

置き換えたいウィンドウのプロセスとスレッドで実行している場合、これは簡単に試すことができます。元のウィンドウのプロセスとスレッドで実行していない場合は、動作する可能性がはるかに低くなります。これが置き換えようとしているWindowsシェルの一部である場合、これが機能する可能性はほとんどありません。

ウィンドウの置換を実行できる場合は、元の子ウィンドウが応答することを期待する方法で親ウィンドウに応答する必要がありますが、おそらくそれについてはすでに考えています。

親ウィンドウが元の子のウィンドウハンドルを保持している場合、それを置き換える試みは失敗します(元のハンドルと通信しようとします)。ただし、子をIDで追跡している場合は、ウィンドウに同じウィンドウIDを指定し、SetWindowPosを使用して元の子と同じサイズ、場所、およびZオーダーを指定してから、元の子。

幸運を祈ります。これはリスクの高い動作ですが、サブクラス化やフッキングなど、代わりに試すことができる他のすべてのハックも同様です。

于 2010-02-19T21:39:35.727 に答える