ShellExecute und lange Dateinamen als Parameter
-
Hallo,
ich bin bei der Verwendung der Funktion ShellExecute auf folgendes Problem gestoßen:
int ret = (int) ShellExecute(0, "open", FileName, FileParam, 0, SW_SHOWNORMAL);
FileName ist eine Exe.
FileParam wird dieser Exe als Kommandozeilenparameter übergeben.Bei Dateinamen die Leerzeichen enthalten, funktioniert dieser Aufruf nicht.
Bei der Auswertung von ParamStr(1) wird der Dateiname nach dem Leerzeichen abgeschnitten.
Als Beispiel: FileParam = 'c:\mein ordner\xxx.yyy'
ParamStr(1) in der aufgerufenen Exe ist dann: 'c:\mein'Wie muß FileParam aussehen, damit der gesamte Dateiname übergeben wird?.
PS: Die Beispiele in der FAQ gehen auf diesen Fall nicht ein.
Udo
-
Hallo
Jeden einzelnen Parameter, der ein Leerzeichen enthalten soll, in Hochkommas setzen. Wenn in deinem Fall in FileParam genau ein Parameter steckt, dann also einfach
FileParam = "\"" + FileParam + "\"";
\Edit
@ Linnea : 4 Sekunden schnellerbis bald
akari
-
du musst die Pfadangabe in Anführungszeichen setzen:
FileParam = "\"c:\mein ordner\xxx.yyy\"";
-
Danke für die schnelle Hilfe.