如何检测是否按下了Windows键?

时间:2011-02-05 21:58:26

标签: .net winforms keypress windows-key

我希望能够检测到何时按下了Windows键。我尝试使用getasynckeystate函数bug找不到正确的虚拟密钥。  谢谢你的帮助!

3 个答案:

答案 0 :(得分:3)

检查出来:

Keys Enumeration

您正在寻找这些密钥代码:

LWin    The left Windows logo key (Microsoft Natural Keyboard).
RWin    The right Windows logo key (Microsoft Natural Keyboard).

示例代码:

Public Sub TextBox1_KeyPress(ByVal sender As Object, _
    ByVal e As KeyPressEventArgs) Handles TextBox1.KeyPress

    If (e.Key = Key.LWin Or e.Key = Key.RWin) Then
        MsgBox("Pressed Windows Key")
    End If
End Sub

答案 1 :(得分:1)

关键代码在Keys Enumeration页面上给出:

  

LWin左侧Windows徽标键(Microsoft Natural Keyboard)   RWin右侧Windows徽标键(Microsoft Natural Keyboard)。

当使用键盘其他而不是微软自然键盘时,它不表示是否获得这些代码中的任何一个(如果有的话)。

如果您使用的是WinForms,则需要捕获KeyDown Event

如果您使用的是WPF,则需要Keyboard.KeyDown Event

答案 2 :(得分:1)

如果你真的想使用GetAsyncKeyState,你要找的值在WinUser.h中定义为VK_LWIN和'VK_RWIN':分别为0x5B和0x5C。