Moin!
Ich möchte einen beliebigen Prozess starten z.B den „VLC-Player“.
Wenn ich auf den Button1 klicke, wird dieser Prozess aufgerufen und gleich im Anschluss speichere ich den MainWindowHandle in eine List(Of String) Variable.
Das Problem an der Sache ist!
Ohne den Sleep(1000) hat der vlcProcess.MainWindowHandle einen 0 Wert.
Wenn ich diese Sleep Methode verwende, dann habe ich den richtigen Wert.
Ich bin der Meinung, dass passiert dadurch, weil das Programm zu schnell gestartet wird.
Und es deshalb keinen Wert auslesen kann.
Nun Meine Frage an euch:
Kann ich diesen Code so anpassen, dass kein Sleep mehr benötigt wird?
Weil ich vermute, dass eine ältere CPU vielleicht mehr als 1 Sekunde braucht.
Und deshalb das Programm nicht fehlerfrei ausgeführt wird.
Außerdem wäre es ohne, dass Sleep um einiges besser.
Ich hoffe ich könnte mein Problem gut beschreiben, und freue mich auf eure Hilfe.
Ich wünsche mir eine andere Lösung ohne das Sleep.
BIG THX
Ich möchte einen beliebigen Prozess starten z.B den „VLC-Player“.
Wenn ich auf den Button1 klicke, wird dieser Prozess aufgerufen und gleich im Anschluss speichere ich den MainWindowHandle in eine List(Of String) Variable.
Das Problem an der Sache ist!
Ohne den Sleep(1000) hat der vlcProcess.MainWindowHandle einen 0 Wert.
Wenn ich diese Sleep Methode verwende, dann habe ich den richtigen Wert.
Ich bin der Meinung, dass passiert dadurch, weil das Programm zu schnell gestartet wird.
Und es deshalb keinen Wert auslesen kann.
Nun Meine Frage an euch:
Kann ich diesen Code so anpassen, dass kein Sleep mehr benötigt wird?
Weil ich vermute, dass eine ältere CPU vielleicht mehr als 1 Sekunde braucht.
Und deshalb das Programm nicht fehlerfrei ausgeführt wird.
Außerdem wäre es ohne, dass Sleep um einiges besser.
Ich hoffe ich könnte mein Problem gut beschreiben, und freue mich auf eure Hilfe.
Ich wünsche mir eine andere Lösung ohne das Sleep.
BIG THX
VB.NET-Quellcode
- Option Strict On
- Public Class Form2
- Dim meineliste1 As New List(Of String)
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim vlcProcess As Process
- vlcProcess = New Process()
- vlcProcess.StartInfo.FileName = Me.txtVLCPlayerPfad.Text
- vlcProcess.StartInfo.Arguments = Me.txtMP3Pfad.Text
- vlcProcess.EnableRaisingEvents = True
- vlcProcess.Start()
- Application.DoEvents()
- 'System.Threading.Thread.Sleep(1000)
- ' Ohne Sleep hat die Variable einen 0 Wert!
- meineliste1.Add(vlcProcess.MainWindowHandle.ToString)
- ' Ausgabe...
- MsgBox(meineliste1(0))
- End Sub
- End Class
Visual Basic.NET
MS-SQL
MS-SQL