質問: explorerで開いているフォルダがどこかを知りたいです vb.net labelにフォルダのパスが入っていて、開くのボタンを押した時に すでに開いていればそれを表示させたいのですが、 エクスプローラがどこのフォルダを開いているか調べる方法で苦戦しております。 実行中のプロセスをすべて取得して、ひとずつプロセス名を調べて explorerだったらメインウィンドウタイトルを取得しようと思った のですが、explorerはフォルダが複数あっても1つしか出ないので この方法ではだめだと思いました。 そこで、findwindowというapiでlabelにある文字列を使って ウィンドウを探して特定しようと思ったのですが、 これだとc:\だった場合、ウィンドウタイトルに不明なボリューム名が 入るので、まずドライブのボリューム名を調べないとならないのかと 思っているのですが、これ以外の方法で開いているフォルダを調べて system.diagnostics.process型の変数に割り当てる方法がありましたら、 ご教授頂ければ幸いです。
回答: 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 といった具合で取得できますよ