&H Code für Taste Keys.Alt

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Silvergreen.

    &H Code für Taste Keys.Alt

    Guten Tag,
    Ich weiß ich weiß..., Google ist dein bester freund, habe ich auch. &H1... Aber nicht bei mir... Strg (&H2) funktioniert prima. Nur ALT will nicht, also entweder ist &h1 falsch oder irgendetwas an meinem Code. Case wird auch nicht ausgelößt...

    Visual Basic-Quellcode

    1. Public Const MOD_ALT As Integer = &H1 'Alt key
    2. Public Const MOD_Strg As Integer = &H2 'Strg key
    3. Public Const WM_HOTKEY As Integer = &H312
    4. 'RegisterKey Beispiel:
    5. RegisterHotKey(Me.Handle, 1, MOD_Strg, Keys.A)
    6. 'Bzw.
    7. RegisterHotKey(Me.Handle, 1, MOD_Alt, Keys.A)

    Für eventuelle Gegenfragen immer erreichbar;)
    Mfg Silvergreen
    ?(
    @Silvergreen 1 ist korrekt.
    Probier mal dieses Snippet. Form mit 2 Button und 1 Label:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As IntPtr, ByVal id As Integer, ByVal modifier As Integer, ByVal key As Integer) As Integer
    3. Private Declare Function UnregisterHotKey Lib "user32" (ByVal Hwnd As IntPtr, ByVal ID As Integer) As Integer
    4. Private Const Key_None As Integer = &H0
    5. Private Const Key_Alt As Integer = &H1
    6. Private Const Key_Ctrl As Integer = &H2
    7. Private Const Key_Shift As Integer = &H4
    8. Private Const Key_Win As Integer = &H8
    9. Private Const WM_HOTKEY As Integer = &H312
    10. Protected Overrides Sub WndProc(ByRef m As Message)
    11. If m.Msg = WM_HOTKEY Then
    12. Select Case CInt(m.WParam)
    13. Case 1 : Label1.Text = "A"
    14. Case 2 : Label1.Text = "Alt + B"
    15. Case 3 : Label1.Text = "Shift + Ctrl + C"
    16. Case 4 : Label1.Text = "Shift + Ctrl + Alt + Win + Q"
    17. End Select
    18. End If
    19. MyBase.WndProc(m)
    20. End Sub
    21. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    22. RegisterHotKey(Me.Handle, 1, Key_None, Keys.A)
    23. RegisterHotKey(Me.Handle, 2, Key_Alt, Keys.B)
    24. RegisterHotKey(Me.Handle, 3, Key_Shift Or Key_Ctrl, Keys.C)
    25. RegisterHotKey(Me.Handle, 4, Key_Shift Or Key_Ctrl Or Key_Alt Or Key_Win, Keys.Q)
    26. End Sub
    27. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    28. UnregisterHotKey(Me.Handle, 1)
    29. UnregisterHotKey(Me.Handle, 2)
    30. UnregisterHotKey(Me.Handle, 3)
    31. UnregisterHotKey(Me.Handle, 4)
    32. End Sub
    33. End Class
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Was versuchst du da?
    Wenn du da Shortcuts erstellen willst, würde ich das KeyDown-Event abonnieren und da den KeyCode auslesen.

    EDIT: siehe hier.

    LG, Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup: