Friday 28 April 2017

Msdn Prozess Waitforexit

Ich habe ein Problem mit diesem und hoffe, dass einige von euch vielleicht etwas Licht auf sie für mich verschütten könnten. Der Codeblock: Ive änderte die URL offensichtlich, aber das ist nicht wichtig. Wenn ich versuche, es zu laufen, gibt es mir eine Ausnahme auf der Linie quotWaitForExitquot anzeigt quotNo Prozess mit diesem verknüpft ist object. quot Jede Hilfe hier würde sehr geschätzt werden Dienstag, 19. Oktober 2010 18.05 Prozessdateiname ausführbare Datei sein müssen MBoardProcess. StartInfo. Argumente microsoft / en / us / default. aspx mBoardProcess. StartInfo. FileName quotIEXPLORE. EXEquot CODE WANDLER SITE Herausgegeben von kaymaf Dienstag, 19. Oktober 2010 06.32 Uhr als Antwort markiert von Frank L. Smith Dienstag, 19. Oktober 2010 6: 35 PM Tuesday, October 19, 2010 6:26 PMVerwalten von Prozessen in PowerShell Einige Leute haben vor kurzem gefragt, wie man Prozesse in PowerShell verwalten kann. Dieser Blog-Beitrag sollte eine Reihe dieser Fragen beantworten. Wie man vom 8220shell8221-Teil von PowerShell erwarten könnte, müssen Sie nichts tun, um einen Prozess zu starten. In einer Programmiersprache wie VBScript, haben Sie etwas ziemlich komplex wie zu tun: strComputer 8220.8221 Set objWMIService GetObject (8220winmgmts: 8221 Ampere 8220 8221 Ampere strComputer amp 8220rootcimv28221) Set objStartup objWMIService. Get (8220Win32ProcessStartup8221) Set objConfig objStartup. SpawnInstance Set objProcess GetObject (8220winmgmts: rootcimv2: Win32Process8221) objProcess. Create 8220Notepad. exe8221, Null, objConfig, intProcessID aber in Schalen (Powershell, cmd. exe, bash, etc.) können Sie einfach ein Programm wie Notepad starten Sie einfach durch Eingabe einer 8220notepad8221 wie gezeigt. Jetzt bemerken Sie, dass, wenn Sie dies tun, die Shell sofort zurück und fordert für den nächsten Befehl. Dies liegt daran, Notepad ist ein Win32-GUI-Prozess und läuft im Hintergrund. Auf der anderen Seite, wenn Sie eine Konsolenanwendung wie 8220ping. exe8221 starten, wartet PowerShell, bis dieser Prozess abgeschlossen ist. Aber was, wenn ich auf den Win32-Prozess warten möchte In cmd. exe, you8217d tun dies mit 8220start / wait8221 aber dieser Befehl ist nicht (direkt) in PowerShell. Also, was tun wir PowerShell führt direkt ausführbare Dateien. Wenn es wartet, bis der Prozess beendet wird, dann den Exit-Code in LASTEXITCODE links. Wenn nun eine Win32-ausführbare Datei der letzte Befehl in einer Pipeline ist und nicht umgeleitet wird, wird der Prozess im Hintergrund ausgeführt. Allerdings, wenn Sie ihre Ausgabe in etwas Pipe, dann PowerShell wartet auf den Befehl zu beenden So ist dies ein einfaches (wenn nicht intuitiv) warten, bis ein GUI-Prozess warten, um zu beenden. Wenn der Prozess bereits ausgeführt wird, können Sie Get-Process verwenden, um die erforderlichen Informationen zurückzuholen und dann ein WaitForExit () für dieses Objekt auszuführen. Hier ist ein etwas anspruchsvolleres Beispiel, wo wir ein Dokument öffnen, anstatt einen Prozess zu starten. Dieses Mal finden wir den Prozess durch Fenstertitel anstatt durch den ausführbaren Namen Leider sucht ein Prozess immer, dass Sie den falschen Prozess finden können. Idealerweise möchte man8217d das Process-Objekt direkt bekommen. Für eine genauere Prozessverwaltung müssen Sie also die. NET-Klasse System. Diagnostics. Process verwenden und die Prozesse selbst starten. Beispielsweise können Sie diagnosis. process :: Start () verwenden, um auf einen Prozess zu warten: Beachten Sie die Verwendung von 8220pwdfoo. txt8221, um den vollständigen Pfad zu der Datei anzugeben. Dies liegt daran, dass PowerShell seine eigene Idee des aktuellen Verzeichnisses beibehält. (Dieser Hinweis gilt für die Verwendung einer. NET-API, die auf das Dateisystem zugreift, die Sie benötigen, um ihm einen absoluten Pfad zuzuweisen.) Jetzt beginnen wir mit der Wiederherstellung der Komplexität, die Sie in einer Programmiersprache finden. Allerdings haben Sie auch alle die Macht der Sprachen. Here8217s ein Beispielskript 8220background. ps18221, dass Sie eine Skript in einem separaten Fenster (oder im gleichen Fenster freistehend laufen lassen, wenn Sie die inconsole Parameter angeben. Dieses Skript let8217s Sie die Dinge in Powershell tun, die Sie von cmd. exe tun can8217t kann aber tun von VBScript. Schließlich hier sind zwei weitere Möglichkeiten, mit Prozessen arbeiten. Auch wenn Powershell doesn8217t einen Startbefehl haben, cmd. exe tut so können Sie einen Start tun / warten, indem Sie Und, last but not least, die Powershell-Communityerweiterungen Enthält ein Start-Process-Cmdlets. Sie können eine Liste dieser Funktionen an: Bruce Payette MSFTIm mit einem Problem mit diesem und hoffe, dass einige von euch vielleicht etwas Licht auf sie für mich verschütten könnte Der Codeblock: Ive änderte die URL, offensichtlich , Aber das ist nicht wichtig. Wenn ich versuche, es auszuführen, gibt es mir eine Ausnahme auf der quotWaitForExitquot Zeile, die quotNo Prozess mit diesem object. quot zugeordnet ist Jede mögliche Hilfe würde viel geschätzt werden Dienstag, 19. Oktober 2010 18:05 Prozess Dateiname muss die ausführbare Datei mBoardProcess. StartInfo sein. Argumente microsoft / en / us / default. aspx mBoardProcess. StartInfo. FileName quotIEXPLORE. EXEquot CODE CONVERTER SITE Erstellt von kaymaf Dienstag, 19. Oktober 2010 18:32 Als Antwort markiert von Frank L. Smith Dienstag, 19. Oktober 2010 6: 35 PM Dienstag, 19. Oktober 2010 18:26 Uhr


No comments:

Post a Comment