2009-06-27 9 views
0

外部アプリケーションにタスクバーに表示されているウィンドウがあるかどうかを知りたいかどうかを知りたいですか?私は時にはエラーメッセージを表示し、タスクバーに表示されるプログラムを持っています。私がメッセージを「閉じる」とすれば、それは見えなくなりますが、私が見たものからはまだ存在しています。そのウィンドウが表示され、クリック可能であるかどうかを知る唯一の方法は、タスクバーに表示されているかどうかを確認することです。(Win Api)外部アプリケーションウィンドウがタスクバーにあるか確認してください。

どうすればいいですか?

おかげで、クラス名、ウィンドウ名、およびウィンドウの階層を見つけるために

+0

もし私がWS_VISIBLEをチェックすれば、それもうまくいくでしょう、わかりません? –

答えて

0

まず使用(Visual Studioに同梱)スパイ++。ヒント:エラーメッセージが画面に表示されたら、spy ++を実行し、Alt + F3、Alt + Dを押してから、エラーメッセージウィンドウにファインダツールをドラッグし、OKを押します。

ウィンドウがトップレベル(つまりその親がデスクトップの場合)の場合は、FindWindow APIを使用します。

ウィンドウがトップレベルでない場合(つまりその親が別のウィンドウである場合)、まずFindWindowを使用してメインウィンドウを見つけ、FindWindowEx(再帰的に)を使用してそのエラーメッセージウィンドウを検索します。

0

タスクバーを管理するためのドキュメント化されたCOMインターフェイスはITaskbarListですが、ボタンを追加/削除することしかできません。既存のボタンを一覧表示することはできません。だから、

は、次の3つのオプションがあります。

A)をIIRCそこ(タスクバーとその子タブコントロールやツールバーを見つけ、文書化されていない土地に行く(XPに2000から変更)と、アイテムデータ毎にその文書化されていないを見て

Bは、あなたが気にウィンドウのスタイル(WS_VISIBLEと(無所有者またはWS_EX_APPWINDOW)及びませんがWS_EX_TOOLWINDOW)、またはそれらのライン

に沿って何かを確認してください))この情報とそこにオープンソースの変更タスクバーボタンの順アプリです

C)壊れたアプリケーションのフック/サブクラス

関連する問題