所以經過一些更有創意的谷歌搜索,我發現使用ShellWindows類的方法,由SHDOCVW.DLL
在VB/A,設置爲SHDOCVW.DLL(Microsoft Internet控制)的引用,這裏的代碼我以前只是獲得所有被選中的文件名集合中的所有打開的IE窗口:
Function GetSelectedFilesInWinExplorers() As Collection
Dim Result As New Collection
Dim ExpWin As Object
Set ExpWin = New SHDocVw.ShellWindows
Dim CurrWin As SHDocVw.InternetExplorer
On Error Resume Next
Dim CurrSelFile As String
For Each CurrWin In ExpWin
If Not CurrWin.Document Is Nothing Then
If Not CurrWin.Document.FocusedItem Is Nothing Then
CurrSelFile = CurrWin.Document.FocusedItem.Path
If CurrSelFile <> "" Then
Result.Add CurrSelFile
Debug.Print CurrSelFile
End If
CurrSelFile = ""
End If
End If
Next CurrWin
Set GetSelectedFilesInWinExplorers = Result
End Function
我不得不使用上的錯誤繼續下一步,因爲某些原因,FocusedItem不會是什麼,但會仍然會引發錯誤。這和我真的不在乎在這種情況下使用它。
我想雷蒙德陳回答完全是你的問題與此博客文章:http://blogs.msdn.com/oldnewthing/archive/2004/07/20/188696.aspx它的一些相當令人印象深刻的代碼,我認爲,但正如他所說:「這不是一項固有的艱鉅任務,你只需要拼湊很多小塊。」 ;) –