![]() |
ShellExecute und Leerzeichen? Geht nicht?
Hi,
kann ShellExecute mit Leerzeichen umgehen? Bei mir scheint das irgendwie nicht zu funktionieren (Delphi 7). Wenn ich ShellExecute (s.u.) mit folgendem Parameter:
Code:
aufrufe klappt alles wunderbar und der Dienst wird installiert.hlpSystemdienst := 'D:\OrdnerDiana\bin\mysqld-nt.exe -install'; ShellExecute(Application.Handle, 'open', PChar(SysUtils.GetEnvironmentVariable('COMSPEC')), PChar('/C '+hlpSystemdienst), nil, SW_ShowNormal); Wenn ich allerdings den Ordner anders nenne:
Code:
d.h. nur 1 Leerzeichen zwischen Ordner und Diana steht, dann wird der Dienst nicht installiert. hlpSystemdienst := 'D:\Ordner Diana\bin\mysqld-nt.exe -install'; Wenn ich alles selbst per Kommandozeile installiere klappt es bei beiden Versionen?! Weiß jemand was ich da machen kann? Danke schon mal im Voraus, Diana |
Re: ShellExecute und Leerzeichen? Geht nicht?
Probiers mal, den Pfad in "" zu setzen, also so:
Delphi-Quellcode:
Gruß,
hlpSystemdienst := '"D:\Ordner Diana\bin\mysqld-nt.exe" -install';
|
Re: ShellExecute und Leerzeichen? Geht nicht?
Suuuuuuuuper! Es klappt! :-D
Vielen Dank für den Tipp!!! Viele Grüße, Diana |
Re: ShellExecute und Leerzeichen? Geht nicht?
Das ist eigentlich ganz klar, da ja normaler Weise die einzelnen Parameter durch Leerzeichen getrennt sind wird ihne die " die Pfad-/Datei-Angabe aufgeteilt.
Also in Parameter 1 = D:\Ordner Parameter 2 = Diana\bin\mysqld-nt.exe Parameter 3 = -install deshalb muß ja irgendwie, also mit ", gesagt werden, was zusammengehört und nicht gerennt werden soll und da vermutlich kein Ordner "D:\Ordner" und keine Datei "Diana\bin\mysqld-nt.exe" existiert kann auch nichts geschehen dieses kann aber auch zu massig Problemen führen, wenn eines davon doch existiert z.B. der Pfad "C:\abc def\ghi.exe" wenn jetzt aber eine "C:\abc.exe" vorhanden ist, so wird diese genommen -.- |
Re: ShellExecute und Leerzeichen? Geht nicht?
Man kann auch zum Testen eine Verknüpfung im Explorer oder auf dem Desktop erstellen, welche die Befehlszeile enthält. Wenn es hier klappt, dann sollte es auch mit ShellExecute() gehen.
:coder: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz