Thursday 21 September 2017

Vb Waitforexit


Verwendung von Process. Start in Visual Basic Von Dan Mabbutt. Visual Basic-Experte Die Start-Methode des Process-Objekts ist möglicherweise eines der am meisten geschätzten Werkzeuge, die Ihnen als Programmierer zur Verfügung stehen. Als eine Methode hat Start eine Reihe von Überladungen (verschiedene Sätze von Parametern, die genau bestimmen, was die Methode tut). In diesem Fall können Sie mit den Überladungen nahezu jeden Satz von Parametern angeben, den Sie an einen anderen Prozess übergeben möchten, wenn er gestartet wird. Was Sie mit Process. Start tun können, ist wirklich nur durch die Prozesse begrenzt, die Sie mit ihm verwenden können. Lesen Sie weiter unten, was zu sagen ist, gibt es kein Limit seit mehr kommen immer die ganze Zeit. Wenn Sie Ihre textbasierte 34ReadMe34-Datei im Editor anzeigen möchten, ist it39s so einfach wie: Dies setzt voraus, dass sich die ReadMe-Datei im selben Ordner wie das Programm befindet und dass Notepad die Standardanwendung für. txt-Dateitypen und it39s in der Systemumgebung ist Pfad. Für die VB639ers im Publikum ist Process. Start etwas wie der VB6 Shell Befehl. In VB6, könnten Sie etwas wie: lngPID 61 Shell (34MyTextFile. txt34, vbNormalFocus) Sie können noch den Shell-Befehl in VB, aber ich wouldn39t es empfehlen. Verwenden Sie stattdessen Process. Start. Sie können diesen Code stattdessen verwenden, um den Editor zu maximieren und ein ProcessStartInfo-Objekt zu erstellen, das Sie für eine präzisere Steuerung verwenden können: Dim ProcessProperties als neues ProcessStartInfo ProcessProperties. FileName 61 34notepad34 ProcessProperties. Arguments 61 ProcessWindowStyle. Maximized Dim myProcess Als Prozess 61 Process. Start (ProcessProperties) Lesen Sie weiter unten Sie können sogar einen versteckten Prozess starten. ProcessProperties. WindowStyle 61 ProcessWindowStyle. Hidden Aber seien Sie vorsichtig. Es sei denn, Sie fügen Sie mehr Code, um den Prozess zu beenden, müssen Sie es wahrscheinlich in Task-Manager beenden. Verdeckte Prozesse werden normalerweise nur bei Prozessen verwendet, die keine Benutzeroberfläche haben. Arbeiten mit Process. Start als ein Objekt gibt Ihnen eine Menge von Fähigkeiten. Sie können beispielsweise den Namen des Prozesses abrufen, der gestartet wurde. Dieser Code wird 34notepad34 im Ausgabefenster anzeigen: Dim myProcess als Prozess 61 Process. Start (34MyTextFile. txt34) Console. WriteLine (myProcess. ProcessName) Wenn Sie die Ausführung des Programms bis zum Ende des Prozesses unterbrechen müssen (etwas, das Sie tun können Mit API-Code in VB6), hier ya gehen. Console. WriteLine (34Notepad beendet: 34 amp myProcess. ExitTime amp Environment. NewLine amp 34Exit-Code: 34 amp myProcess. ExitCode) Dies war etwas, was Sie nicht mit dem Befehl VB6 Shell tun konnte, weil es die neue Anwendung asynchron gestartet. Die Verwendung von WaitForExit kann das umgekehrte Problem verursachen, weil Sie einen Prozess in einem neuen Thread starten müssen, wenn Sie ihn asynchron ausführen müssen. Wenn Sie beispielsweise die Komponenten in einem Formular aktiv bleiben sollen, in dem ein Prozess gestartet wurde und WaitForExit ausgeführt wurde. Normalerweise werden diese Komponenten nicht aktiv. Code it up und sehen Sie selbst. Eine Möglichkeit, den Prozess zu stoppen, ist, die Kill-Methode zu verwenden. Dieser Code wartet für zehn Sekunden und beendet den Prozess. Ich fand, dass eine erzwungene Verzögerung notwendig war, um den Prozess zu beenden, um einen Fehler zu vermeiden. MyProcess. WaitForExit (10000) 39 Wenn der Prozess doesn39t innerhalb von 39 10 Sekunden abgeschlossen ist, töten Sie es If Not myProcess. HasExited Dann myProcess. Kill () Ende If Threading. Thread. Sleep (1) Console. WriteLine (34Notepad beendet: 34 amp myProcess. ExitTime amp Environment. NewLine amp 34Exit-Code: 34 amp myProcess. ExitCode) In den meisten Fällen ist es wahrscheinlich eine gute Idee, Ihre Verarbeitung in einem Block verwenden, um sicherzustellen, dass die Ressourcen, die von dem Prozess freigegeben werden. Verwenden von myProcess als Prozeß 61 Neuer Prozeß 39 Ihr Code geht hier Ende Verwenden Um dies noch einfacher zu gestalten, gibt es sogar eine Prozesskomponente, die Sie zu Ihrem Projekt hinzufügen können, so dass Sie eine Menge der oben beim Design gezeigten Dinge tun können Zeit statt der Laufzeit. Eines der Dinge, die dies macht viel einfacher ist die Codierung von Ereignissen, die durch den Prozess, wie das Ereignis, wenn der Prozess verlassen hat. Sie können auch einen Handler mit Code wie folgt hinzufügen. 39 erlauben dem Prozess, die Ereignisse zu erhöhen myProcess. EnableRaisingEvents 61 True 39 einen Exited-Ereignishandler hinzufügen AddHandler myProcess. Exited, AddressOf Me. ProcessExited Private Sub ProcessExited (ByVal-Absender als Objekt, ByVal und als System. EventArgs) 39 Ihr Code geht hier End Sub Aber nur die Auswahl der Veranstaltung für die Komponente ist viel einfacher. Im mit einem Problem mit diesem und hoffe, dass einige von euch könnte etwas Licht auf sie für mich verschütten Der Codeblock: Ive verändert die URL, natürlich, aber das ist nicht wichtig. Wenn ich versuche, es auszuführen, gibt es mir eine Ausnahme auf der quotWaitForExitquot-Zeile, die angibt, dass kein Prozeß mit diesem object. quot assoziiert wird. Jede mögliche Hilfe hier würde viel geschätzt werden, Prozessdateiname muss ausführbare Datei sein MBoardProcess. StartInfo. Argumente microsoftenusdefault. 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 18:35 Dienstag, 19. Oktober , 2010 6:26 PM

No comments:

Post a Comment