Я написал простой пример.
Имейте в виду, что может быть более одного открытого окна проводника Windows, и это отобразит их все.
Function GetSelectedFiles() 'Returns paths as array of strings
Dim FileList, Window, SelectedItem
'avoid duplicates by storing paths in dictionary keys
Set FileList = CreateObject("Scripting.Dictionary")
With CreateObject("Shell.Application")
For Each Window In .Windows
'skip IE Windows
If InStr(1, Window.FullName, "iexplore.exe", vbTextCompare) = 0 Then
For Each SelectedItem In Window.Document.SelectedItems
FileList(SelectedItem.Path) = Null
Next
End If
Next
End With
GetSelectedFiles = FileList.Keys 'array of paths
End Function
MsgBox "Click OK after selecting the items", _
vbOKOnly Or vbInformation, "Select a few items"
Dim SelectedFiles
SelectedFiles = GetSelectedFiles
MsgBox "You selected: " & vbNewLine & vbNewLine & _
Join(SelectedFiles, vbNewLine), vbOKOnly Or vbInformation, "Selected Items"
'loop through array
'Dim FileItem
'For Each FileItem In SelectedFiles
' WScript.Echo FileItem
'Next
Нет, это не так. В зависимости от того, что вы действительно хотите достичь, вы можете добавить запись контекстного меню, которая вызывает VBScript с указанием пути к выбранному объекту. Если вы объясните, для чего вам это нужно, вы можете получить более качественные ответы. –
Спасибо за ответ. Я хотел бы добавить некоторые скриптовые возможности к моему существующему программному обеспечению и позволить получать информацию о текущем выбранном файле, дублировать выбранный файл и другие основные операции. Я подумаю об использовании контекстного меню. – Mark
Если вы выбрали файл/папку с помощью Browse Folder, то легко получить выбранный файл. –