Hallo zusammen!
Ich versuche gerade mit meiner Applikation den Windows-Dialog "Öffnen mit..." zu nutzen. Das funktioniert auch wunderbar mit nur einer Datei. Jetzt möchte ich aber mehr als nur eine Datei der via Dialog ausgewählten Applikation übergeben.
Delphi-Quellcode:
procedure OpenWith(aFileList: TTNTStringList);
var
Param: widestring;
WStr: widestring;
i: word;
begin
if aFileList.Count = 0 then
exit;
WStr:= '';
for i := 0 to aFileList.Count - 1 do
WStr:= WStr + ',' + aFileList[i];
Param:= 'shell32.dll,OpenAs_RunDLL '+WStr;
ShellExecuteW(Application.Handle,'open','rundll32.exe',
PWideChar(Param),
nil, SW_SHOWNORMAL);
end;
Komma-separiert wird nur die letzte Datei berücksichtigt, in Anführungszeichen eingeschlossen funktioniert es garnicht.
Edit: Komma-separiert funktioniert es ebenfalls nicht, der Applikation wird der komplette zusammengesetzte String (WStr) übergeben => ungültige Datei.
Hat jemand einen Tipp für mich wie das funktionieren könnte? Ich habe irgendwie aber das dumme Gefühl, dass sowas überhaupt nicht geht. Auch im Windows-Explorer wird bei mehrerern ausgewählten Dateien nur die letzte an das jeweilige Programm übergeben.
Vielen Dank im Voraus für sachdienliche Hinweise.
Es ist zu wahr um schön zu sein...