2010-11-27 11 views
9

mit den folgendenAuswählen von Dateien in Windows Explorers nicht immer funktionieren

explorer.exe /select, "c:\path\to\file.txt" 

ich Windows Explorer öffnen und die Datei auswählen. In Delphi tue ich dies, um "Parm" Datei zu wählen:

ShellExecute(Application.MainForm.Handle, 'OPEN', PChar('explorer.exe'), PChar('/select,"' + Parm + '"'), nil, SW_NORMAL); 

Und es funktioniert. Mein Problem ist folgendes: Wenn ich im zuletzt geöffneten Explorer eine andere Datei auswähle (in eine andere Datei klick) und dann den obigen Code anrufe, wird die "Parm" -Datei nicht mehr ausgewählt. Interessanterweise gibt es einige Programme, die die Datei erneut auswählen. Zum Beispiel wählt ITunes immer die gewünschte Datei aus.

Hat jemand eine Ahnung, wie Explorer immer die angegebene Datei auswählen?

Antwort

13

Dies ist eine bekannte Einschränkung der Verwendung der Option/Select mit explorer.exe, es wird nur die spezifische Datei auswählen, wenn der übergeordnete Ordner nicht bereits geöffnet ist.

Sie müssen stattdessen einen API-Aufruf wie SHOpenFolderAndSelectItems verwenden. Diese Funktion ermöglicht auch die Mehrfachauswahl.

+0

Perfekt, danke, ich habe versucht, Name dieser Funktion atm zu erinnern –

+0

Ein hervorragendes Beispiel für SHOpenFolderAndSelectItems finden Sie hier: http://StackOverflow.com/Questions/15300999/Open-Windows-Explorer-Directory-Select- Eine spezifische Datei in Delphi – Lars

Verwandte Themen