2011-02-05 4 views
2

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

+1

Пожалуйста, отметьте свой вопрос правильно. Вы используете C# или VB? Это VB6 или VB.NET? Какая версия? – Oded

ответ

1

коды клавиш приведены на странице Keys Enumeration:

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

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

Если вы используете WinForms, то вам нужно в ловушку KeyDown Event

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

+0

И если это консольное приложение, вы хотите вызвать 'Console.ReadKey()' и проверить значение свойства 'ConsoleKeyInfo.Key'. Значениями являются 'ConsoleKey.LeftWindows' и' ConsoleKey.RightWindows'. –

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

Если вы действительно хотите использовать GetAsyncKeyState, значения вы ищете определены в WINUSER.H, как VK_LWIN и `VK_RWIN ': 0x5b и 0x5c соответственно.

Смежные вопросы