partitionist
Erfahrenes Mitglied
Ich habe eine Shell(Konsolenprogramm) so was cmd.exe, naja jedenfalls hab ich in der Shell noch eigene Programme(Befehle) beigelegt wie z.B. shutdown, kill.
Bisher habe ich alle Befehle mit system() ausgeführt, was mich stört ist, wenn ein Befehl der an system() übergeben wird, so wird automatisch von der Funktion die Typische cmd Fehlermeldung ausgegeben:
Um das zu verhindern will ich zu CreateProcess() wechseln, hierfür habe ich folgenden Code verwendet:
Als ich dann damit die gleichen Befehle in der Konsole ausgeführt habe, habe festgestellt das die Befehle langsamer ausgegeben wurden als mit system().
Woran liegt das und habe ich optimale Parameter für Konsolenprozesse verwendet?
Bisher habe ich alle Befehle mit system() ausgeführt, was mich stört ist, wenn ein Befehl der an system() übergeben wird, so wird automatisch von der Funktion die Typische cmd Fehlermeldung ausgegeben:
Der Befehl "..." ist entweder falsch geschrieben oder konnte nicht gefunden werden
Um das zu verhindern will ich zu CreateProcess() wechseln, hierfür habe ich folgenden Code verwendet:
Code:
PROCESS_INFORMATION piProcessInfo;
memset(&siStartupInfo, 0, sizeof(siStartupInfo));
memset(&piProcessInfo, 0, sizeof(piProcessInfo));
siStartupInfo.cb = sizeof(siStartupInfo);
int stat = CreateProcess(NULL,
Command,
0,
0,
TRUE,
NORMAL_PRIORITY_CLASS,
0,
0,
&siStartupInfo,
&piProcessInfo);
CloseHandle(piProcessInfo.hProcess);
CloseHandle(piProcessInfo.hThread);
Als ich dann damit die gleichen Befehle in der Konsole ausgeführt habe, habe festgestellt das die Befehle langsamer ausgegeben wurden als mit system().
Woran liegt das und habe ich optimale Parameter für Konsolenprozesse verwendet?