Frage

Ich versuche, Createprocess zu verwenden, um einen Powershell-Skript zu starten, aus meiner Anwendung.

Ich habe das Microsoft Beispiel verwendet ( http: //msdn.microsoft.com/en-us/library/ms682499(VS.85).aspx ) das Kind Prozess und leiten Sie den Standard aus / in / err Rohren.

erstellen

Das einzige Problem, links zu lösen, warum das Kind Prozess (Powershell) führt nicht zum Abbruch nach der Ausführung des Befehls.

Wenn ich den Powershell-Prozess ausführen (mit dem Befehl) cmd.exe es ausführt und beendet wird, schließen Sie den Vorgang.

Der einzige Weg, gerade jetzt den Powershell-Prozesses der Schließung ist TerminateProcess auf dem Griff zu laufen, aber das fühlt sich wie ein letzter Ausweg.

War es hilfreich?

Lösung

Sind Ihre Eltern vollständig das Kind stdout zu lesen? Wenn Sie es nicht alle lesen dann glaube ich, das Kind hängen wird. Auch, wenn das Skript Eingabe erwartet werden Sie etwas das Kind stdin schreiben oder sonst wird es hängen. Sie könnten dem Kind anhängen windbg und sehen, wo es hängen ist; vielleicht wird es geben Ihnen eine Vorstellung davon, wo sie suchen müssen.

Andere Tipps

In Linux, wenn nicht umleiten vollständig die Ausgabe und der übergeordnete Prozess getötet werden, wird das Kind Prozess auch getötet. So können Sie Fenster überprüfen Dokumentation rearrange die Kinder Prozesses beziehen, wenn die Eltern getötet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top