お世話になります。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200510/05100079.txt
で質問したものです。
ウィンドウの非表示処理は完成しました。
次にデスクトップ上にあるウィンドウの一覧(タスクバーに表示されているウィンドウ)
を取得したいです。
EnumWindowを使ってウィンドウの一覧を取得することはできましたが
これだとデスクトップ上にあるウィンドウ以外のウィンドウも取得してしまいます。
IsWindowVisibleを使えばいいのかなと思いやってみましたが、これでも
まだ他のウィンドウが取得されるようです。
デスクトップ上に表示されているウィンドウのみを抽出するには
何を調べたら分かるのでしょうか?
環境はVB6です。
よろしくお願いします。
http://www.msjogren.net/dotnet/eng/samples/vb6_taskbarlist.asp
回答ありがとうございます。
サンプルをダウンロードし、調べてみると以下のように条件判断しタスクバーに表示されている
ウィンドウを取得していました。
(1)そのウィンドウのウィンドウスタイルにWS_EX_APPWINDOWがセットされている場合
→タスクバーに表示されているウィンドウ
(2)そのウィンドウのウィンドウスタイルにWS_EX_TOOLWINDOWがセットされていない場合
(ただし(1)の条件がこの条件より優先される)
→タスクバーに表示されていないウィンドウ
(3)下記の3条件を満たす場合(ただし(1)、(2)の条件がこの条件より優先される)
→タスクバーに表示されているウィンドウ
・ウィンドウが可視状態
・そのウィンドウのオーナウィンドウが無い
・親ウィンドウのウィンドウハンドルが0またはデスクトップのウィンドウハンドル
サンプルにも書いてありますが、これが正しいのかどうか分かりませんが今のところ
問題なさそうなので解決とします。
ありがとうございました。
解決です。
ツイート | ![]() |