これ何て呼びますか Part2

Labelにフォルダのパスが入っていて、開くのボタンを押した時に
すでに開いていればそれを表示させたいのですが、
エクスプローラがどこのフォルダを開いているか調べる方法で苦戦しております。

実行中のプロセスをすべて取得して、ひとずつプロセス名を調べて
EXPLORERだったらメインウィンドウタイトルを取得しようと思った
のですが、EXPLORERはフォルダが複数あっても1つしか出ないので
この方法ではだめだと思いました。

そこで、FindWindowというAPIでLabelにある文字列を使って
ウィンドウを探して特定しようと思ったのですが、
これだとC:\だった場合、ウィンドウタイトルに不明なボリューム名が
入るので、まずドライブのボリューム名を調べないとならないのかと
思っているのですが、これ以外の方法で開いているフォルダを調べて
System.Diagnostics.Process型の変数に割り当てる方法がありましたら、
ご教授頂ければ幸いです。

A 回答 (1件)

Shell32.dllとShDocVw.dllを参照設定して


  Dim sh As New Shell32.Shell
  Dim objWins As SHDocVw.IShellWindows = sh.Windows
  For Each oWeb As SHDocVw.InternetExplorer In objWinds
    Debug.Print(oWeb.LocationName & " " & oWeb.FullName)
  Next
といった具合で取得できますよ
    • good
    • 0
この回答へのお礼

redfox63様いつもご回答をありがとうございます。
今回もこの方法で完璧でした。
便利な手法を教えて頂きましてありがとうございました。

お礼日時:2008/11/13 20:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報