Получить выбранный файл в окне проводника - PullRequest
1 голос
/ 25 марта 2010

Хотелось бы узнать, как, по возможности, получить путь к выбранному файлу в открытом окне проводника Windows.Если нет, то будет ли возможно, по крайней мере, получить путь к папке в открытом окне проводника Windows?

Конечная причина, по которой я это делаю, - программный инструмент, который я пишу, требует от пользователяфайл.Я полагаю, если они уже перемещают файл с помощью Проводника Windows, а затем запускают мой инструмент, было бы хорошо, если бы им не пришлось снова перемещаться по папке в диалоговом окне открытия файла.Тогда мое программное обеспечение сможет определить, имеет ли оно правильное расширение файла, и если это так, просто спросите пользователя, хотят ли они импортировать этот файл.

1 Ответ

1 голос
/ 25 марта 2010

Итак, после более творческого поиска в Google, я нашел метод, использующий класс ShellWindows из ShDocVW.dll

В VB / A со ссылкой на ShDocVW.dll (Microsoft Internet Controls) вот код, который я использовал, чтобы просто получить коллекцию всех выбранных имен файлов во всех открытых окнах Проводника:

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

Мне пришлось использовать On Error Resume Next, потому что по какой-то причине FocusedItem не был бы ничем, но все равно вызывал бы ошибку. Это и меня не волнует использование этого в этом контексте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...