Hi, erstmal 
Also ich habe an einen einfachen Keybinder für ein Spiel gewagt und nun habe ich ein Problem.
Ich möchte das es Tastenkombis unterstützt. Also z.B. Strg+1
Hab auch was probiert doch es buggt. Wenn ich Strg+1 drücke, dann bleibt Strg gedrückt oder ähnlich. -->buggs
Wäre nett, wenn mir jemand hilft.
Gruß
Mein Code
Spoiler anzeigen

Also ich habe an einen einfachen Keybinder für ein Spiel gewagt und nun habe ich ein Problem.
Ich möchte das es Tastenkombis unterstützt. Also z.B. Strg+1
Hab auch was probiert doch es buggt. Wenn ich Strg+1 drücke, dann bleibt Strg gedrückt oder ähnlich. -->buggs
Wäre nett, wenn mir jemand hilft.
Gruß
Mein Code
VB.NET-Quellcode
- Public Class Form1
- Private Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As IntPtr, ByVal id As Integer, ByVal fsModifier As Integer, ByVal vk As Integer) As Integer
- Private Declare Sub UnregisterHotKey Lib "user32" (ByVal hWnd As IntPtr, ByVal id As Integer)
- Private Const Key_NONE As Integer = &H0
- Private Const WM_HOTKEY As Integer = &H312
- Private Const Key_STRG As Integer = &H2
- Protected Overrides Sub WndProc(ByRef m As Message)
- If m.Msg = WM_HOTKEY Then
- Select Case m.WParam
- Case 1
- SendKeys.Send("t")
- UnRegisterAll()
- RegisterHotKey(Me.Handle, 2, Key_NONE, Keys.Enter)
- RegisterHotKey(Me.Handle, 3, Key_NONE, Keys.Escape)
- Case 2
- SendKeys.Send("{ENTER}")
- RegisterAll()
- UnregisterHotKey(Me.Handle, 2)
- UnregisterHotKey(Me.Handle, 3)
- Case 3
- SendKeys.Send("{Escape}")
- RegisterAll()
- UnregisterHotKey(Me.Handle, 2)
- UnregisterHotKey(Me.Handle, 3)
- Case 4
- SendKeys.Send("bla")
- Case 5
- SendKeys.Send("lol")
- End Select
- End If
- If m.Msg = WM_HOTKEY And Key_STRG Then
- Select Case m.WParam
- Case 6
- SendKeys.Send("rofl")
- End Select
- End If
- MyBase.WndProc(m)
- End Sub
- Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
- UnregisterHotKey(Me.Handle, 1)
- UnregisterHotKey(Me.Handle, 2)
- UnregisterHotKey(Me.Handle, 3)
- UnregisterHotKey(Me.Handle, 4)
- UnregisterHotKey(Me.Handle, 5)
- UnregisterHotKey(Me.Handle, 6)
- End Sub
- Private Sub UnRegisterAll()
- UnregisterHotKey(Me.Handle, 1)
- UnregisterHotKey(Me.Handle, 2)
- UnregisterHotKey(Me.Handle, 3)
- UnregisterHotKey(Me.Handle, 4)
- UnregisterHotKey(Me.Handle, 5)
- UnregisterHotKey(Me.Handle, 6)
- End Sub
- Private Sub RegisterAll()
- RegisterHotKey(Me.Handle, 1, Key_NONE, Keys.T)
- RegisterHotKey(Me.Handle, 2, Key_NONE, Keys.Enter)
- RegisterHotKey(Me.Handle, 3, Key_NONE, Keys.Escape)
- RegisterHotKey(Me.Handle, 4, Key_NONE, Keys.D1)
- RegisterHotKey(Me.Handle, 5, Key_NONE, Keys.D2)
- RegisterHotKey(Me.Handle, 6, Key_STRG, Keys.D1)
- End Sub
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- RegisterHotKey(Me.Handle, 1, Key_NONE, Keys.T)
- RegisterHotKey(Me.Handle, 4, Key_NONE, Keys.D1)
- RegisterHotKey(Me.Handle, 5, Key_NONE, Keys.D2)
- RegisterHotKey(Me.Handle, 6, Key_STRG, Keys.D1)
- End Sub
- End Class