c++ createprocess als administrator und erhalten Sie Ihre Ausgabe

Ich habe ein problem, ich habe auf der Suche nach zwei Dinge müssen zusammen gehen, laufen, einem Prozess, durch den Createprocess() als administrator und erhalten die Ausgabe.

Wenn ich das Google, wie CreateProcess() als administrator bekomme ich die antwortenden zu verwenden shellexecute. Ich gehe zu shellexecute, während ich da bin, shellexecute keine Ausgabe, was lief auf der Konsole(Prozess).

Ich Google wieder wie bekomme ich die Ausgabe von einem Prozess mit shellexecute, bekomme ich Antworten, die sagen, Sie können tun, dass mit shellexecute, createprocess verwenden, also gehe ich von createprocess. Ich bin kämpfen, um zu konvertieren, was ich Tue, mit shellexecute auf createprocess.

Was mache ich mit shellexecute macht das, was ich Suche, als administrator ausführen. aber keine Ausgabe.

Hier ist mein shellexecute-code.

SHELLEXECUTEINFO si = {0};

si.cbSize = sizeof(SHELLEXECUTEINFO);
si.fMask = SEE_MASK_NOCLOSEPROCESS;
si.hwnd =NULL;
si.lpVerb = "runas";
si.lpFile = "netsh.exe";
si.lpParameters = "advfirewall firewall      add rule name=\"dummy_rule\" action=allow protocol=TCP dir=in localport=3300";
si.lpDirectory=NULL;
si.nShow=SW_SHOW;
si.hInstApp =NULL;
ShellExecuteEx(&si);
WaitForSingleObject(si.hProcess, INFINITE);
CloseHandle(si.hProcess);

Dieser code läuft in einer Methode, und was es tut, ist das hinzufügen einer firewall-Regel um einen port zu öffnen für imcoming-verbindungen. Es ist in Ordnung, wie es ist, das problem ist, dass ich nicht weiß, ob der Prozess erfolgreich war, nicht shellexecute. also brauche ich die Ausgabe.

  • Hallo, könnten Sie finden keine Lösung für das problem?
Schreibe einen Kommentar