HotKeys auswählen

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von sNx.

    HotKeys auswählen

    hey wollte mal fragen ob man ein hotkey selbst auswählen kann mit ner textbox ohne dasman ne ewig lange if abfrage hat wie zb

    VB.NET-Quellcode

    1. If TextBox1.Text = "F1" Then
    2. If GetAsyncKeyState(Keys.F1) = -32767 Then
    3. End If
    4. End If


    usw...

    kann man nicht den textbox inhalt irgendwie an Keys. ranhängen? :D

    und noch was, wo wird die datei von My.Settings gespeichert?

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

    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Kannste große Texte nich lesen oder was?
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    lol ich weiß nicht wie ich den TEXTBOX text an keys. ranbekomm, und ne if abfrage mit allen buchstaben zahlen etc hab ich auch keine lust zumachen und wird krass unübersichtlich. wie ich die hotkeys von mir unänderbar einbau is mir klar aber der user soll ja in einer textbox sein hotkey reinschrieben
    Schnapp dir die HotKeyBox hiervon:
    [Release] AeroControls

    das ist ne TextBox, den Focus setzen und einfach ne Taste drücken.
    LG
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    Du kannst den KeyCode der TextBox als String abfangen und speichern, und bei einer Routine, die Tastendrücke abfragt, mit diesem String abgleichen.

    VB.NET-Quellcode

    1. Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
    2. HotKeyForPorn = e.KeyCode.ToString 'Speichern der Taste
    3. End Sub
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.

    Lukas schrieb:


    Du kannst den KeyCode der TextBox als String abfangen und speichern, und bei einer Routine, die Tastendrücke abfragt, mit diesem String abgleichen.

    Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
    HotKeyForPorn = e.KeyCode.ToString 'Speichern der Taste
    End Sub
    Also könnte man wenn man denn die taste abgefang hat das so einfügen?

    VB.NET-Quellcode

    1. If GetAsyncKeyState(HotKeyForPorn) = -32767 Then
    2. End If


    Kann nich testen bin auf mac on und keine lust auf windows zu starten
    Auf Basis des Codes aus dem Thread hatte ich jetzt mal für mich selbst was zurechtgedröselt. Das ist für einen Hotkey:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Declare Function GetAsyncKeyState Lib "User32" (ByVal vKey As Integer) As Short
    3. Dim key As Keys
    4. Dim keyint As Integer
    5. 'Hier die Deklaration des Threads
    6. Dim hotkeyThread As New Threading.Thread(AddressOf CheckKeyPressed)
    7. Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
    8. key = e.KeyCode
    9. keyint = e.KeyValue
    10. TextBox1.Text = key.ToString 'Anzeige der Taste
    11. End Sub
    12. 'Diese Funktion prüft ob die Taste im Moment gedrückt ist. Wenn ja dann gibt die Funktion True zurück.
    13. Function GetTaste(ByVal Taste As Integer) As Boolean
    14. If GetAsyncKeyState(Taste) = -32767 Then
    15. Return True
    16. End If
    17. End Function
    18. 'Hier wird der Thread gestartet.
    19. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    20. hotkeyThread.Start()
    21. End Sub
    22. 'Das ist die Sub, welche prüft, ob ein Hotkey gedrückt wurde.
    23. Sub CheckKeyPressed()
    24. Do
    25. If GetTaste(keyint) = True Then
    26. 'Aktion die beim Drücken des Hotekeys passiert.
    27. MessageBox.Show("Die Taste " & key.ToString & " wurde gedrückt!")
    28. End If
    29. Loop
    30. End Sub
    31. End Class


    Also: Abgleichen mit KeyValue. Oben holst du dir nur den KeyCode.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.