& H十六进制代码表示哪些键?

时间:2011-04-11 09:44:54

标签: vb.net programming-languages hex

编辑:我发现了一篇文章,其中列出了我需要的内容:http://msdn.microsoft.com/en-us/library/ms646309(v=vs.85).aspx

感谢您的帮助!

原件:

我想知道&H十六进制代码表示哪些键盘键?

例如,我发现&H1是ALT键,&H2是CONTROL键,&H3同时是ALT和CONTROL键。出现&H10是Shift键。我问,因为我需要找到我正在设计的需要注册热键的程序。用户可以选择隐藏它,我想确保他们可以通过按热键再次显示它,但我需要找出使用我找到的代码的十六进制键。

这是我找到的代码的一部分:

Public Const MOD_ALT As Integer = &H1 'Alt key
Public Const WM_HOTKEY As Integer = &H312

<DllImport("User32.dll")> _
Public Shared Function RegisterHotKey(ByVal hwnd As IntPtr, _
                    ByVal id As Integer, ByVal fsModifiers As Integer, _
                    ByVal vk As Integer) As Integer
End Function

<DllImport("User32.dll")> _
Public Shared Function UnregisterHotKey(ByVal hwnd As IntPtr, _
                    ByVal id As Integer) As Integer
End Function

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
    If m.Msg = WM_HOTKEY Then
        Dim id As IntPtr = m.WParam
        Select Case (id.ToString)
            Case "100"
                MessageBox.Show("You pressed ALT+D key combination")
            Case "200"
                MessageBox.Show("You pressed ALT+C key combination")
        End Select
    End If
    MyBase.WndProc(m)
End Sub

这会在表单加载时注册热键:

RegisterHotKey(Me.Handle, 100, &H3, Keys.D)
RegisterHotKey(Me.Handle, 200, Keys.Alt, Keys.C)

This是我在MSDN论坛上看到的主题 - 我从特色回答中复制了代码。

我已经完成了彻底的谷歌搜索,我在StackOverflow上搜索过,我找不到任何东西。

是否有某个十六进制代码列表,或指令或什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

在您链接的MSDN帖子中,有一个指向Virtual Key Codes的链接。 另外,请检查System.Windows.Forms.Keys枚举。

请注意,RegisterHotKey方法采用以下参数:hWnd,id,fsModifiers和vk。 VK是放置VirtualKey代码的地方。关于fsModifiers:

  

必须按下的键   与指定的密钥组合   uVirtKey参数以便   生成WM_HOTKEY消息。该   fsModifiers参数可以是a   以下值的组合:   MOD_ALT(0x0001),MOD_CONTROL   (0x0002),MOD_NOREPEAT(0x4000),   MOD_SHIFT(0x0004),MOD_WIN(0x0008)。