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

3

我希望能够检测到Windows键何时被按下。我尝试使用getasynckeystate函数,但没有找到正确的虚拟键。

谢谢你的帮助!


1
请正确标记您的问题。您是在使用C#还是VB?它是VB6还是VB.NET?是哪个版本? - Oded
3个回答

3

看这个:

Keys 枚举

你需要查找这些按键代码:

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

键码在Keys Enumeration页面上给出:

LWin 左Windows徽标键(Microsoft自然键盘)。
RWin 右Windows徽标键(Microsoft自然键盘)。

它并没有表明除了Microsoft自然键盘之外的其他键盘是否可以获得这些代码。

如果您正在使用WinForms,则需要捕获KeyDown事件

如果您正在使用WPF,则需要Keyboard.KeyDown事件


如果这是一个控制台应用程序,您需要调用 Console.ReadKey() 并检查返回的 ConsoleKeyInfo.Key 属性的值。这些值分别是 ConsoleKey.LeftWindowsConsoleKey.RightWindows - Jim Mischel

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接