tagchen!
habe ein problem.
habe eine funktion die in einer do until loop eine textdatei zeilenweise ausliest.
Das Programm gibt die vorher aufgezeichneten Mausbewegungen eines Users wieder.
Public Sub abspielen(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles tmr_lesen.Tick
tmr_lesen.Stop()
btnPlay.Enabled = True
Dim FiStr As FileStream '= New FileStream(Application.StartupPath +
' "\record.gmo", FileMode.Open)
Dim StrRe As StreamReader ' = New StreamReader(FiStr)
Dim teilen
Dim ersteZeile As Integer = 0
If geoeffneteDatei <> "" Then
FiStr = New FileStream(geoeffneteDatei, FileMode.Open)
Else
FiStr = New FileStream(Application.StartupPath + "\record.gmo", _
FileMode.Open)
End If
StrRe = New StreamReader(FiStr)
Do Until StrRe.Peek() = -1
teilen = Split(StrRe.ReadLine, " ")
If ersteZeile > 0 Then
mouse_event(MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_MOVE, teilen(0) _
/ Screen.PrimaryScreen.Bounds.Width * 65535, _
teilen(1) / _
Screen.PrimaryScreen.Bounds.Height _
* 65535, 0, 0)
If teilen(2) = "1" Then
mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_LEFTUP, _
teilen(0) / Screen.PrimaryScreen.Bounds.Width * 65535, _
teilen(1) / Screen.PrimaryScreen.Bounds.Height _
* 65535, 0, 0)
ElseIf teilen(4) = "1" Then
mouse_event(MOUSEEVENTF_RIGHTDOWN + MOUSEEVENTF_RIGHTUP, _
teilen(0) / Screen.PrimaryScreen.Bounds.Width * 65535, _
teilen(1) / _
Screen.PrimaryScreen.Bounds.Hei_
ght * 65535, 0, 0)
Else 'nix tun
End If
Threading.Thread.Sleep(Settings.tb_Speed.Value) _
'Wiedergabegeschwindigkeit
Else
ersteZeile = ersteZeile + 1
End If
Loop
If StrRe.EndOfStream = True Then
lbl_Status.Text = "playback finished"
End If
StrRe.Close()
End Sub Habe mir ein MenuStrip aufgebaut und dort einen ShortCutKey vergeben, der die Wiedergabe der Mausbewegungen (siehe Funktion "abspielen") sofort stoppen soll. der ShortCut wird auch angenommen, aber erst nachdem die Do until loop / abspielen Funktion zu ende ist.
Nun meine frage: Wie kann ich, wenn ich den ShortCut betätige, die Do until Loop abbrechen???
habe versucht das event abzufangen und mit in die obere Funktion einzubinden, ist mir aber nicht gelungen.
Muss ich das mit Threads machen??? habe irgendwo so was gelesen...
Ich hoffe ihr könnt mir helfen und DANKE schonmal.
THX a lot
wasa
Die Intelligenz verfolgt mich. Aber ich bin schneller!! |