CreateProcess ?

Ich möchte in mein CPP-Code den Editor „EDIT.COM“ aufrufen. Ich weiss, das das mit CreateProcess geht, aber ich kriege es einfach nicht hin.

Ich bitte um ein ausführliches Beispiel!

Danke

Hier ein einfacher Beispiel-Code:

STARTUPINFO SUInfo;
PROCESS\_INFORMATION PInfo;

// Start-Up-Info auf 0
ZeroMemory( &SUInfo, sizeof( SUInfo ));
SUInfo.cb=sizeof( SUInfo );

if( !CreateProcess(
 NULL, // Kein Modulname, Kommando-Zeile benutzen
 "edit.com",// Kommando-Zeile
 NULL, // Prozess-Handle nicht vererbbar
 NULL, // Thread-Handle nicht vererbbar
 FALSE, // Handle.Verebung auf FALSE 
 // Normale Priorität
 NORMAL\_PRIORITY\_CLASS,
 NULL, // Eltern-Evironment-Block verwenden
 NULL, // Elternverzeichnis als Startverzeichnis
 &SUInfo,// Zeiger auf Startup-Struktur
 &amp:stuck\_out\_tongue\_winking\_eye:Info // Zeiger auf Process-Informations-Struktur
)){
 Fehlerbehandlung, Prozess-Erzeugnung misslungen
}

Grüße Safog

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Als jemand, der sich demnächst mit VC++ auseinandersetzen werden muss, frag ich mal aus neugier, gibt’s da keine einfacheren Möglichkeiten, z.B. einfach den ShellExec API-Call oder sowas wie ExecFile, oder WinExec in Delphi ?

Dankeschön!
Vielen Dank!

Klar geht das, z. B. mit
ShellExecute(…) oder ShellExecuteEx(…), dann mußt Du aber die Shell bemühen.
Sogar das alte WinExec(…) aus alten 16-bit-Zeiten findet sich noch!

Was aber tun, wenn Du den Prozess irgendwie manipulieren willst, wenn der erst zu einem späteren Zeitpunkt gestartet werden soll oder die Priorität anzupassen ist?

Was tun, wenn Du im Programm-Fluß auf die Beendigung des Prozesses warten mußt oder gar unter NT gefinkelte Sicherheitsaspekte zu berücksichtigen hast?

CreateProcess( …) ist dann die einzig wahre Alternative, sodaß sich eine etwas längere Einarbeitung in die Sytax duurchaus lohnt!

Grüße Safog

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]