VBS: Wählen Sie im letzten aktiven Fenster des Windows Explorer ein Element aus

925
Yaron

Ich verwende den folgenden Code, um eine Datei in einem Windows Explorer-Fenster auszuwählen:

Set objShellAPP = CreateObject("Shell.Application") objShellAPP.Open(WScript.Arguments(0)) WScript.Sleep(300)  On Error Resume Next ' For new unsaved files. With objShellAPP.Windows(objShellAPP.Windows.Count - 1).document .SelectItem .Folder.Items.Item(WScript.Arguments(1)), 29 End With  Set objShellAPP = Nothing 

objShellAPP.Open() öffnet den Ordner im letzten aktiven Fenster;

objShellAPP.Windows.Count - 1 ist nicht unbedingt dieses Fenster.

Wie kann ich das letzte aktive Fenster für die With objShellAPP.Windows(---).documentLeitung erhalten?

Vielen Dank.


Sehen:

Öffnen und wählen Sie eine Datei in einem vorhandenen Explorer-Fenster

VBS: Wählen Sie eine Datei in einem Ordner aus

0

1 Antwort auf die Frage

0
Yaron

Im folgenden Code wird das erste Windows Explorer-Fenster aktiviert und dort ein Ordner geöffnet (ich verwende QTTabbar ).

Set objShellApp = CreateObject("Shell.Application") Dim winFolder For Each wFolder In objShellApp.Windows On Error Resume Next isFolder = wFolder.document.folder ' An IE window does not support ".document.folder". We get the first Windows Explorer window. If Err = 0 Then wFolder.Visible = True Set winFolder = wFolder Exit For End If Next  objShellApp.Open(WScript.Arguments(0)) WScript.Sleep(300)  If NOT WScript.Arguments(1) = "" Then If winFolder = Empty Then Set winFolder = objShellApp.Windows(objShellApp.Windows.Count - 1) ' A Windows Explorer window opened with objShellApp.Open(WScript.Arguments(0)) is the last one in the index (Count - 1). End If  On Error Resume Next ' For new unsaved files. With winFolder.document .SelectItem .Folder.Items.Item(WScript.Arguments(1)), 29 End With End If  Set winFolder = Nothing Set objShellApp = Nothing 

Zur besseren Unterscheidung zwischen Windows-Explorer und Internet-Explorer:

VBS: Unterscheidung zwischen Windows-Explorer und Internet-Explorer