C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 23 を表示中)
■10004 / )  Re[7]: 他のプログラムのウィンドウを閉じる
□投稿者/ カンタービレ (28回)-(2007/11/09(Fri) 01:02:10)
No9996 (まどか さん) に返信
>>もしデスクトップ上のすべてのWindowを列挙したい場合、APIのEnumWindows関数を使うしかないでしょうか?
>
> いわゆるウィンドウ(フォームではない)はそれが唯一の概念のはずなので、APIとしても概念がひとつでしょう。
> ということは複数のAPIを使い分けるといったことにはならないんじゃないかと。
> つまりEnumWindowsでいいというか、アプリケーションタブ用のAPIとかは無いんじゃないかな。
> #Shell系にあったりして。。。
>
> 昔VB6で作ったときもEnumWindowsしながらGetWindowTextがNullじゃないものを列挙対象にしてたりしてましたし。

なるほどデス。対応したクラスがあるか探してみてなさそうだったので同じような手法を取るしかなさそうですね。
#Shell系って・・・Shell32.dllかしらん?ちなみにShell32にはなさそうデス。

スレ主サマの主題に戻ると、プロセスではなくタスクマネージャの云々ということではメインウィンドウを持たないプロセスは
一覧から消えることは確認しました。ダイアログだけ・・というのは未確認ですが出ないっぽいデス。
ちなみにGoogleサイドバーもガジェットも出ませんね。
にしても、れれれサマのしたいウィンドウ一覧の列挙はProcessクラスで満たせると思いマス。
クローズに関しても基本的に同クラスのCloseMainWindowで十分可能だとは思いマスが、特殊なウィンドウでは
クローズを受け付けないこともあるかも知れません。(アプリ側がクローズメッセージを無視する作りの場合とかダイアログで待たされるとか)
http://support.microsoft.com/kb/305603/ja
も参考になると思いマス。

返信 編集キー/


管理者用

- Child Tree -