AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi ShellExecute und Leerzeichen? Geht nicht?
Thema durchsuchen
Ansicht
Themen-Optionen

ShellExecute und Leerzeichen? Geht nicht?

Ein Thema von Portabella · begonnen am 7. Sep 2004 · letzter Beitrag vom 7. Sep 2004
Antwort Antwort
Portabella

Registriert seit: 20. Jun 2004
45 Beiträge
 
#1

ShellExecute und Leerzeichen? Geht nicht?

  Alt 7. Sep 2004, 11:17
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:
 
hlpSystemdienst := 'D:\OrdnerDiana\bin\mysqld-nt.exe -install';

ShellExecute(Application.Handle, 'open', PChar(SysUtils.GetEnvironmentVariable('COMSPEC')),
      PChar('/C '+hlpSystemdienst), nil, SW_ShowNormal);
aufrufe klappt alles wunderbar und der Dienst wird installiert.

Wenn ich allerdings den Ordner anders nenne:
Code:
 
hlpSystemdienst := 'D:\Ordner Diana\bin\mysqld-nt.exe -install';
d.h. nur 1 Leerzeichen zwischen Ordner und Diana steht, dann wird der Dienst nicht installiert.

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
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: ShellExecute und Leerzeichen? Geht nicht?

  Alt 7. Sep 2004, 11:21
Probiers mal, den Pfad in "" zu setzen, also so:
hlpSystemdienst := '"D:\Ordner Diana\bin\mysqld-nt.exe" -install'; Gruß,
  Mit Zitat antworten Zitat
Portabella

Registriert seit: 20. Jun 2004
45 Beiträge
 
#3

Re: ShellExecute und Leerzeichen? Geht nicht?

  Alt 7. Sep 2004, 11:28
Suuuuuuuuper! Es klappt!
Vielen Dank für den Tipp!!!

Viele Grüße,

Diana
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.049 Beiträge
 
Delphi 12 Athens
 
#4

Re: ShellExecute und Leerzeichen? Geht nicht?

  Alt 7. Sep 2004, 11:41
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 -.-
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Alfons_G

Registriert seit: 7. Jun 2002
Ort: München
296 Beiträge
 
Delphi 2007 Architect
 
#5

Re: ShellExecute und Leerzeichen? Geht nicht?

  Alt 7. Sep 2004, 15:07
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.

Alfons Grünewald



Alfons Grünewald
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz