tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Process.GetProcessesの表示順につきまして
投稿日: 2011/04/27(Wed) 21:25
投稿者camputer
 今晩は。2回連続で質問させていただきます。
大変恐縮でございますが、どうぞよろしくお願い致します。
 プログラム歴10年程度 &VBとVBA歴3年程度、
環境:Win7+VB2008EE でございます。

 複数開いているテキストファイル(全てメモ帳)のウィンドウの、
「開いた順番」を知れる方法が無いかなと色々検索いたしております。
Process.GetProcessesで羅列してみましたが、これは何の順番で
Processを見つけてきれくれるのでございましょうか??

http://www.atmarkit.co.jp/fdotnet/dotnettips/233enumwin/enumwin.html
を参考にさせていただきまして、次のようにコーディングいたしました。

        For Each p As Process In Process.GetProcesses()
            If Not p.MainWindowHandle.Equals(IntPtr.Zero) Then
                If (p.ProcessName = "notepad") Then
                    MsgBox(p.MainWindowTitle)
                End If
            End If
        Next

 正常に動作いたしますが、「ウィンドウを開いた順」でも
「ウィンドウの重なり順(上下)」でもございません。
しかし毎回同じ順番でウィンドウが検出されます。

 色々検証いたしましたが、どれも明確なルールに行き着かず
検索いたしましてもなかなか見つからず悩んでおります。
(検証内容は下記のような感じになります。)

 何かヒントや思いつかれる事などございましたら
アドバイスいただきたくどうぞお願いいたします。


==【検証内容】============================
 例えば1.txt 2.txt 3.txtの3つのファイルがある際、
・123の順で開いて上のコードを走らせますと
 今の私の環境では、312の順でProcessが表示されました。
・毎回同じ順で出てきます。
・秀丸で同様な事をやってみましても、同じ結果でございました。
・更に別フォルダの2.txt 3.txt を開きますと、
 33122の順でProcessが表示されます。
 ↑同じファイル名が連続して出てきているので、ファイル名に何か関係するのかな?
などとも考えている次第でございますが。。。
 とんちんかんな質問かもしれませんが、何か思いつかれる事がございましたら、
どうぞよろしくお願い致します。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。