私は(インプロセス)プラグインをアプリケーションに開発しています。プラグインの一部として、アプリケーションのツールチップを自分で置き換えたいと思っています。しかし、私が利用できるAPIはありませんので、私は低レベルに進むことに決めました。ウィンドウが表示される前にインターセプトして隠す
私はツールチップのウィンドウクラスを知っていますが、質問はどのように作成されているのか、後でどのように閉じるのですか?ここで
は、私がこれまでに行うことを考えたものです:
- がキャッチすると、クラスを確認し、WM_CREATEターゲット
- のプロセスは、それが実際にあることを確認しWM_CREATE
- 上のシステム全体のフックを作成します。ウィンドウ私が気に:プロセスが私のプラグインが
- に座っているものであれば
- とクラスが正しい型である場合
- 、正しいアプリケーションにフォーカスがある場合
- ではなく
はどのように聞こえるん作成したウィンドウへWM_DESTROYを送信し、その位置に自分自身のウィンドウを作成します(複数のアプリケーションの場合)?ツールチップを処理するためのAPIが実際にはないと仮定すると、必要なものに簡単な方法がありますか?
ありがとうございます!
私はこれらの2つの言語でそれを書くことを意図したとおり、C++/C#などのタグP.S(C++システムワイドフックのため、他のすべてのためのC#)
ツールチップは、多くの場合、*作成し、ちょうど保つことによって行われますトップレベルの親ウィンドウごとに1つ*のツールチップウィンドウ。そのツールヒントウィンドウは、必要に応じて調整および表示され、必要でない場合は非表示になります。だから、ウィンドウがいつ表示されたのかを追跡する必要があります。作成されたときではなく、明らかにウィンドウを表示しないようにする必要があります(隠してしまう可能性があります)。 –
@Leo:コメントありがとう。それはおそらく非常に真実です。 – VitalyB