Как определить, нажата ли клавиша Windows?

Я хотел бы быть в состоянии обнаружить, когда клавиша Windows нажата. Я попытался с функцией getasynckeystate ошибка не нашел правильный виртуальный ключ. Спасибо за вашу помощь!

3 ответа

Проверь это:

Перечисление ключей

Вы ищете эти коды клавиш:

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

Если вы действительно хотите использовать GetAsyncKeyStateзначения, которые вы ищете, определены в WinUser.h как VK_LWIN и VK_RWIN: 0x5B и 0x5C соответственно.

Коды ключей приведены на странице Перечисление ключей:

LWin Левая клавиша с логотипом Windows (Microsoft Natural Keyboard).
RWin Правильная клавиша с логотипом Windows (Microsoft Natural Keyboard).

Это не указывает, получен ли какой-либо из этих кодов (если есть) при использовании клавиатуры, отличной от Microsoft Natural Keyboard.

Если вы используете WinForms, вам нужно перехватить событие KeyDown

Если вы используете WPF, вам нужно событие Keyboard.KeyDown

Другие вопросы по тегам