Hallo,
Ich hab ein Pascal Programm geschrieben und dies soll nun erweitert werden. Es soll externe Programme ausführen können (zB Paint), nur wie starte ich solche Programme?
Mfg baminc
Hallo,
Ich hab ein Pascal Programm geschrieben und dies soll nun erweitert werden. Es soll externe Programme ausführen können (zB Paint), nur wie starte ich solche Programme?
Mfg baminc
Auch Hallo,
Mit „CreateProcess“ kannst du beliebige Programme starten.
Gruß
Manfred
Und dann?
CreateProcess (C:\Programm.exe) oder wie soll das gehen ich bin ein noob mir muss man noch sowas beibringen^^
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Und dann?
CreateProcess (C:\Programm.exe) oder wie soll das gehen ich
bin ein noob mir muss man noch sowas beibringen^^
Am besten schreibts Du Dir eine Function, die das erledigt. Die meißten Parameter von CreateProcess werden idR. nicht benötigt. Ansonsten findest Du eine ausführliche Beschreibung in der Hilfe (Windows SDK).
Function ExecProgram( Const csCmdLine : String; bHide : Boolean ) : Boolean;
Var
StartupInfo : TStartupInfo;
ProcessInfo : TProcessInformation;
Begin
FillChar( StartupInfo, SizeOf( TStartupInfo ), 0 );
With StartupInfo do Begin
cb := SizeOf( TStartupInfo );
dwFlags := STARTF\_USESHOWWINDOW or STARTF\_FORCEONFEEDBACK;
If bHide then wShowWindow := SW\_HIDE
else wShowWindow := SW\_SHOWNORMAL;
End;
Result := CreateProcess( nil, PChar( csCmdLine ), nil, nil, False,
NORMAL\_PRIORITY\_CLASS, nil, nil, StartupInfo, ProcessInfo );
End;
Gruß
Christian
Kleine Frage am Rande
Hallo,
schonmal was von ShellExecute gehört?
Gruß
Thorsten
Hallo Thorsten,
schonmal was von ShellExecute gehört?
Klar. Aber es wurde gefragt, wie man CreateProcess verwendet.
Um zu entscheiden, was besser ist, müsste man mehr über den Zweck wissen. Vielleicht reicht hier ja ShellExecute aus.
Veilleicht muss aber der Prozess irgendwie manipuliert werden oder zu einem späteren Zeitpunkt gestartet werden? Oder die Priorität muß geändert werden. Oder das aufrufende Programm muss auf das Ende des Prozesses warten.
Es ist bestimmt nicht verkehrt, sich mit der Syntax von CreateProcess vertraut zu machen. Früher oder später kann man es gebrauchen.
Gruß
Christian
Natürlich kann man auch mit ShellExecute ein Programm starten.
CreateProcess ist jedoch wesentlich flexibler. Z.B. kann man das aufrufende Programm veranlassen zu warten, bis das aufgerufene Programm beendet ist. Man erhält die PID und den Handle zum neuen Prozess und vieles mehr.
Gruß
Manfred
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Du warst schneller.
Manfred