Autor Beitrag
nepleurepas
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164

Win XP

BeitragVerfasst: Sa 05.04.08 20:32 
Hallo,
ich möchte createprocess verwenden. Was muss an zweiter Stelle, also bei command line für eine angabe rein? Habs mal mit 'open' von shellexecute her kommend versucht...

thx stefan
AHT
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Sa 05.04.08 21:33 
Dateiname und Pfad der zu startenden EXE.
nepleurepas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164

Win XP

BeitragVerfasst: Sa 05.04.08 22:05 
user profile iconAHT hat folgendes geschrieben:
Dateiname und Pfad der zu startenden EXE.

ja des wars ja grad nich, den pfad hat ich ja schon an erster stelle. aber mit '' hats geklappt :-)
delphijanka
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151

WinXP
D 2009 Arc., Java, C
BeitragVerfasst: Di 10.11.09 13:40 
Bei mir sieht es folgendermaßen aus:

var
StartInfo : TStartupInfo;
ProcInfo : TProcessInformation;
CreateOK : Boolean;

FillChar(StartInfo,SizeOf(TStartupInfo), #0);
FillChar(ProcInfo,SizeOf(TProcessInformation), #0);
StartInfo.cb := SizeOf(TStartupInfo);

CreateOK := CreateProcess(
nil,
PChar(EXE_FULL_ADRESS + ' ' + FILE_FULL_ADRESS),
nil,
nil,
false,
CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,
nil,
nil,
StartInfo,
ProcInfo);


Das programm tut aber nicht das, was es tun soll, der Process wird zwar gestartet, aber er tut nicht die Datei ausführen, die ich mit FILE_FULL_ADRESS übergebe.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19340
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 11.11.09 01:41 
Kann es sein, dass der Pfad Leerzeichen beinhaltet? In dem Fall hast du evtl. die Anführungszeichen vergessen, es sei denn diese sind in FILE_FULL_ADRESS enthalten.

Zudem: EXE_FULL_ADRESS und FILE_FULL_ADRESS sind ja Konstanten, oder? Denn die Bezeichnungsweise (Großbuchstaben und so) ist ja die von Konstanten. Dann fehlt aber vermutlich der Pfad, da der ja nicht konstant sein kann.
delphijanka
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151

WinXP
D 2009 Arc., Java, C
BeitragVerfasst: Mi 11.11.09 16:16 
@jaenicke:

Ne, es sind keine Konstanten, habe sie nur Übersichtlichkeit wegen groß geschrieben. Der Pfad wir zur Laufzeit ermittelt.

Innerhalb der momentanen Adressen habe ich keine Leerzeichen, daher sind die Anführungszeichen für meinen Fehlerfall erstmal unwichtig. Da die Maschine auch für beliebige Adressen funktionieren soll, werde ich die Anführungszeichen auf jeden Fall setzen. Die Frage ist nur, wie. Wenn ich die komplette Zeichenkette mit " umklammere, wird der Prozess gar nicht gestartet. kannst du mir sagen warum?

Ohne Anführungszeichen wird der Prozess gestartet. Ob er aber richtig fuktioniert, kann ich nicht sagen, da die nötige erwartete Datei zwar erstellt wird, aber ist leer. Vlcht liegt es daran, dass der Prozess nicht automatisch geschlossen wird.

Bin für jede weitere Hilfe sehr dankbar.