Frag ich mal allgemeiner: Woran kann es liegen, dass CreateProcess(...) bei einer Anwendung mit
GUI den Prozess erstellt, in einer Konsolenanwendung aber der Prozess garnicht erst erstellt wird, oder nur kurz im Tastmanager aufblinkt und dann wieder verschwindet?
Vielleicht ist das wichtig: Ich hatte die Variablen
Delphi-Quellcode:
const bufsize=1024; // 1KByte Buffer
Var
buf: array [0..bufsize-1] of AnsiChar; // Musste ich ändern von Char sonst falsche Zeichen
si: tSTARTUPINFO;
sd: tSECURITYDESCRIPTOR;
pi: tPROCESSINFORMATION;
newstdin, newstdout, read_stdout, write_stdin: tHandle;
bread, avail: dword;
aus der Deklaration
in der Methode RC_RUN genommen und sie global (private) im Kopf deklariert. Als ich auch
sa: tSECURITYATTRIBUTES
dort deklariert hatte, wurder in der
GUI ebenfalls kein Prozess erzeugt, also habe ich
Delphi-Quellcode:
Constructor TSysCmd.Create(pCmdDatei, pErrorStr, pStartOrdner : String);
Var
sa: tSECURITYATTRIBUTES; // <<-- HIER
//(...)
lokal in dem Construktor belassen. Nochmal: Wenn ich
sa
auch global deklariere, dann wird auch in der
GUI kein Prozess erzeugt. Kann es also vielleicht an den Attributen liegen?