GetAsyncKeyState ist das überhaput möglich?

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von DolbySelect.

    GetAsyncKeyState ist das überhaput möglich?

    Hallo Leute,
    bin bereits 2 Tage auf der Suche nach diesem Solution, leider ergebnisslos:

    VB.NET-Quellcode

    1. Private Shared Function GetAsyncKeyState(ByVal vkey As System.Windows.Forms.Keys) As Short
    2. End Function
    3. Dim stopkey As Boolean
    4. stopkey = GetAsyncKeyState(TextBox1.Text) ' genau hier ist das Problem
    5. If stopkey = True Then
    6. Timer1.Enabled = False
    7. end if

    gibt es überhaput eine Möglichkeit, damit der Nutzer das Hotkey selber aussuchen kann?
    Hoffe gibt es hier Profis die etwas helfen können.
    Danke im Voraus.
    Willkommen im Forum.

    Bevor Du weitermachst, bitte die empfohlenen VS-Einstellungen verwenden, denn As Short (Zeile#1) widerspricht Z#5, und GetAsyncKeyState(TextBox1.Text) widerspricht Z#1.
    Da aber ein Text nicht in einen Key umgewandelt werden kann, wird es einiges an kunstvollen Griffen brauchen, um das zu bewerkstelligen, was Du vorhast.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Nächster Versuch, wieder ohne Ergebniss...

    VB.NET-Quellcode

    1. Private Shared Function GetAsyncKeyState(ByVal vkey As Int32) As Integer
    2. End Function
    3. Private Sub NullTimer_Tick(sender As Object, e As EventArgs) Handles NullTimer.Tick
    4. Dim keyCode As Integer = Integer.Parse(TextBox1.Text)
    5. Dim kii = DirectCast(keyCode, Keys)
    6. GetAsyncKeyState(kii)
    7. If kii = True Then
    8. MsgBox("Erfolg")
    9. End If
    10. End Sub


    dann habe es umgewandelt in "121" 'The F10 key. aber passiert trotzdem nichts.
    Ja, musst ja auch GetAsyncKeyState auswerten, nicht kii:

    VB.NET-Quellcode

    1. If GetAsyncKeyState(kii) <> 0 Then MessageBox.Show("Erfolg")
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Respekt, funktioniert tadellos!
    Allein wäre ich bald anscheinend nicht darauf gekommen.
    Ich hätte nichts gelernt, wenn ich den Code sofort fertig bekommen hätte. Bin bei dir sehr dankbar.

    Die Finale Version:

    VB.NET-Quellcode

    1. Private Shared Function GetAsyncKeyState(ByVal vkey As Int32) As Integer
    2. End Function
    3. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    4. Dim keyCode As Integer = Integer.Parse(TextBox1.Text)
    5. Dim kii = DirectCast(keyCode, Keys)
    6. If GetAsyncKeyState(kii) <> 0 Then
    7. MsgBox("Erfolg")
    8. End If
    9. End Sub


    Danke VB-Paradise :saint: !

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „DolbySelect“ ()