作成しているアプリからエクスプローラの開いているフォルダパスを自動で取得したいのです。インターネットエクスプローラのアドレスバーの内容からであればDDEでテキストコントロールに以下の方法で取れることは知っています。
textDDE.LinkTopic = "IExplore|WWW_GetWindowInfo"
textDDE.LinkItem = "0xFFFFFFFF"
textDDE.LinkMode = 2
textDDE.LinkRequest
これのエクスプローラ版のLinkTopicおよびLinkItemが分かれば解決するのですが、ご存知の方はおられませんか。
これに限らず他の手法をご存知であればご教授ください。
尚、ドラッグ&ドロップのによる取得は知っているのですが、どうしても自動に拘っています。
よろしくお願いします。
DDE通信で取得とはめずらしいですね。
CreateObject("Shell.Application").Windows()
での取得はだめですか?
Dim O As Object
For Each O In CreateObject("Shell.Application").Windows
'Debug.Print O.LocationURL
If TypeName(O.Document) Like "*Folder*" Then
Debug.Print "HWND="; Hex(O.hWnd)
Debug.Print "Name="; O.Document.Folder.Self.Name
Debug.Print "Path="; O.Document.Folder.Self.Path
Debug.Print "----------"
End If
Next
とか。(VB6の場合)
ありがとうございました。
お蔭様でなんとか目的が達成できそうです。
ツイート | ![]() |