Process. Start mit. WaitForExit () Process. Start (executable. exe).WaitForExit () funktioniert gut, aber wenn ich versuche Process. Start (ausführbare Dateiindex. fsh).WaitForExit (), die kleine dos-Operation starten muss, bekomme ich nur Fehler Um euch diesen ausführbaren fileindex. fsh mit der. bat-Datei zu schreiben, funktioniert test. bat und wenn ich Process. Start (test. bat).WaitForExit () es funktioniert aus irgendeinem Grund, den ich gerade nicht weiß, warum ich kann nicht ausführbare Datei index. fsh verwenden Genau wie in vb6, oder ich weiß nicht, wie man es benutzt RE: Process. Start mit. WaitForExit () vergessen zu erwähnen im Visual Basic 2006 Benutzer RE: Process. Start mit. WaitForExit () Ich muss Process. Startexe verwenden, Prozess - windows. WaitForExit aber wie bekomme ich diesen Prozess, den es als msdos-Funktion auf meiner App zeigt: RE: Process. Start mit. WaitForExit () TipGiver (Programmierer) 19 Okt 06 12:52 vergessen zu erwähnen im Visual Basic 200 6 Benutzer Ich denke, es gibt eine FAQ von ca8msm (), die zeigt, wie man einen Prozess zu starten. Auch gibt es die Möglichkeit, die Fenster versteckt zu haben. Gib es eine Suche. RE: Process. Start mit. WaitForExit () TipGiver (Programmierer) 19 Okt 06 13:01 Err. Ich kann diese Frage nicht finden. Aber ich bin sicher, dass es existiert hat. Jedenfalls: Dim psi Als neues System. Diagnostics. ProcessStartInfo psi. CreateNoWindow False psi. WindowStyle ProcessWindowStyle. Hidden psi. WorkingDirectory das Verzeichnis psi. FileName der DateinameHow zu verwenden Process. Start in Visual Basic Von Dan Mabbutt. Visual Basic Expert Die Startmethode des Process-Objekts ist möglicherweise eines der am meisten unterschätzten Tools, das Ihnen als Programmierer zur Verfügung steht. Als 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 genau einen beliebigen Satz von Parametern angeben, die Sie beim Starten an einen anderen Prozess übergeben möchten. 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 keine Begrenzung, da mehr immer die ganze Zeit kommen. Wenn Sie Ihre textbasierte 34ReadMe34-Datei im Editor anzeigen möchten, ist es 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önnte man so etwas wie: lngPID 61 Shell (34MyTextFile. txt34, vbNormalFocus) Du kannst den Shell-Befehl immer noch in VB anrufen, aber ich würde es nicht empfehlen. Verwenden Sie Process. Start stattdessen. Sie können diesen Code stattdessen verwenden, um Notepad zu maximieren und ein ProcessStartInfo-Objekt zu erstellen, das Sie für eine genauere Steuerung verwenden können: Dim ProcessProperties Als neues ProcessStartInfo ProcessProperties. FileName 61 34notepad34 ProcessProperties. Arguments 61 34myTextFile. txt34 ProcessProperties. WindowStyle 61 ProcessWindowStyle. Maximized Dim myProcess Als Prozess 61 Process. Start (ProcessProperties) Weiterlesen Unten können Sie sogar einen versteckten Prozess starten. ProcessProperties. WindowStyle 61 ProcessWindowStyle. Hidden Aber seien Sie vorsichtig. Wenn du nicht mehr Code hinzufügst, um den Prozess zu beenden, musst du es wahrscheinlich im Task-Manager beenden. Versteckte Prozesse werden normalerweise nur mit Prozessen verwendet, die keine Benutzerschnittstelle haben. Arbeiten mit Process. Start als Objekt gibt Ihnen eine Menge von Fähigkeiten. Beispielsweise können Sie den Namen des Prozesses abrufen, der gestartet wurde. Dieser Code zeigt 34notepad34 im Ausgabefenster an: Dim myProcess Als Prozess 61 Process. Start (34MyTextFile. txt34) Console. WriteLine (myProcess. ProcessName) Wenn Sie die Ausführung Ihres Programms aussetzen müssen, bis der Prozess beendet ist (was Sie tun können) Mit API-Code in VB6), hier gehst du. Console. WriteLine (34Notepad endete: 34 amp myProcess. ExitTime amp Environment. NewLine amp 34Exit Code: 34 amp myProcess. ExitCode) Dies war etwas, was man nicht mit dem VB6 Shell Befehl tun konnte, weil es die neue Anwendung asynchron gestartet hat. Mit WaitForExit kann das umgekehrte Problem verursachen, weil man einen Prozess in einem neuen Thread starten muss, wenn man ihn asynchron ausführen muss. Zum Beispiel, wenn Sie die Komponenten benötigen, um in einer Form aktiv zu bleiben, in der ein Prozess gestartet wurde und WaitForExit ausgeführt wurde. Normalerweise sind diese Komponenten gewonnen. Code it up und sehen Sie selbst. Ein Weg, um den Prozess zu zwingen, ist, die Kill-Methode zu verwenden. Dieser Code wartet zehn Sekunden und beendet den Prozess. Ich fand heraus, dass eine erzwungene Verzögerung notwendig war, um den Prozess zu beenden, um zu beenden, um einen Fehler zu vermeiden. MyProcess. WaitForExit (10000) 39 Wenn der Prozess doesn39t innerhalb von 39 10 Sekunden abgeschlossen ist, töte es Wenn nicht myProcess. HasExited Dann myProcess. Kill () End If Threading. Thread. Sleep (1) Console. WriteLine (34Notepad endete: 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, um Ihre Verarbeitung in einem Baustein zu setzen, um sicherzustellen, dass die Ressourcen, die vom Prozess verwendet werden, freigegeben werden. Verwenden von myProcess Als Prozess 61 Neuer Prozess 39 Ihr Code geht hier Ende Mit Um all das noch einfacher zu arbeiten, gibt es sogar eine Prozesskomponente, die Sie zu Ihrem Projekt hinzufügen können, so dass Sie eine Menge der oben gezeigten Dinge bei Design machen können Zeit statt Laufzeit. Eines der Dinge, dass dies macht viel einfacher ist Codierung von Ereignissen 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 den Prozess, um Ereignisse aufzurufen myProcess. EnableRaisingEvents 61 True 39 fügen Sie einen Exited-Event-Handler hinzu AddHandler myProcess. Exited, AddressOf Me. ProcessExited Private Sub ProcessExited (ByVal Absender als Objekt, ByVal e als System. EventArgs) 39 Ihr Code geht hier End Sub Aber einfach die Auswahl der Veranstaltung für die Komponente ist viel einfacher.
No comments:
Post a Comment