1. #1

    Registriert seit
    05.12.2011
    Beiträge
    104
    Thanked 16 Times in 10 Posts

    Standard Tastendruck in bestimmtem Intervall simulieren

    Hey leute.

    Ich habe:
    - 1 Textbox
    - 1 Timer
    - 1 Checkbox

    Ich will das der eingegebene Text von Textbox1 per Tastendruck z.B (F1) erscheint, Aktiviert soll das ganze werden, durch die Checkbox.
    Ich habe das ganze damals in VB6 schon mal gemacht, als ich den Code aber in VB.net übernehmen wollte ist mir aufgefallen das es nicht ganz so klappt wie ich es möchte. xD

    Nun zum eigentlichen Problem:
    Wenn ich den Text in der Textbox schreibe, fängt der schon an zu Flooden. So möchte ich es natürlich nicht.
    Hoffentlich kann mir jemanden mal mein fehler genau erklären und eine Lösung vorschlagen.

    Hier der Code:


    Spoiler:
    Code:
    Public Class Form1
        Dim F2 As Boolean = False
        Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Long) As Integer
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        End Sub
    
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            F2 = GetAsyncKeyState(Keys.F2)
            If (F2 = True) Then
                System.Windows.Forms.SendKeys.Send(TextBox1.Text)
            End If
        End Sub
        Private Sub Checkbox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
    
        End Sub
    End Class

  2. #2

    Registriert seit
    19.11.2011
    Beiträge
    2.128
    Thanked 1.936 Times in 1.180 Posts

    Standard AW: Code problem

    Zitat Zitat von Zauberer Beitrag anzeigen
    Ich will das der eingegebene Text von Textbox1 per Tastendruck z.B (F1) erscheint, Aktiviert soll das ganze werden, durch die Checkbox.
    Was meinst Du mit erscheint? Wo erscheint?

  3. #3
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.210
    Thanked 9.132 Times in 3.006 Posts
    Blog Entries
    5

    Standard AW: Code problem

    Timer initial deaktivieren, sprich Eigenschaft 'Enabled' auf False setzen. Das kannst du über die GUI in den Eigenschaften machen wenn du den WinForms-Timer nutzt, wovon ich mal ausgehe. Den Timer dann erst aktivieren wenn die CheckBox gecheckt ist, also wenn das Event gefeuert wird
    Btw: Variablen immer so lokal wie möglich und so global wie nötig deklarieren. Wenn F2 also nur im Tick-Event des Timers genutzt werden soll, also nicht global deklarieren.
    Außerdem liefert GetAsyncKeyState einen Integer als Rückgabewert, den Funktionskopf hast du oben ja selbst angegeben.


Ähnliche Themen

  1. WLan als Lan simulieren?
    Von Flo im Forum Windows
    Antworten: 6
    Letzter Beitrag: 21.05.2013, 22:36
  2. Win8 Zeichen kommt bei Tastendruck 2x
    Von x BoooM x im Forum Windows
    Antworten: 4
    Letzter Beitrag: 12.05.2013, 14:51
  3. Antworten: 12
    Letzter Beitrag: 27.02.2012, 16:26
  4. VB.Net Tastendruck erkennen?
    Von Scarya im Forum .Net
    Antworten: 2
    Letzter Beitrag: 23.02.2012, 23:15
  5. Tastendruck in Prozess senden
    Von Gangstersheep im Forum Hochsprachen
    Antworten: 9
    Letzter Beitrag: 03.11.2011, 00:13
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.