Get-KeyState

Получить статус клавиши клавиатуры и мыши
Параметры

  • -Key Название клавиши

  • -Toggle Узнать включена ли клавиша. CapsLock, NumLock, ScrollLock.

Возвращаемые значения

  • 0 - Клавиша не нажималась

  • 1 - Клавиша была нажата

  • 2 - Клавиша опущена (зажата)

список клавиш мыши
NameCodeDescription
LButton1Левая кнопка мыши.
RButton2Правая кнопка мыши.
MButton4Средняя кнопка мыши (трехкнопочная мышь).
XButton15Первая кнопка мыши (пятикнопочная мышь).
XButton26Вторая кнопка мыши (пятикнопочная мышь).
список клавиш клавиатуры
NameCodeDescription
A65Клавиша A.
Add107Клавиша сложения.
Alt262144Клавиша ALT.
Apps93Клавиша контекстного меню (клавиатура Microsoft Natural).
Attn246Клавиша ATTN.
B66Клавиша B.
Back8Клавиша BACKSPACE.
BrowserBack166Клавиша браузера "Назад".
BrowserFavorites171Клавиша браузера "Избранное".
BrowserForward167Клавиша браузера "Вперед".
BrowserHome172Клавиша браузера "Главная".
BrowserRefresh168Клавиша браузера "Обновить".
BrowserSearch170Клавиша браузера "Поиск".
BrowserStop169Клавиша браузера "Остановить".
C67Клавиша C.
Cancel3Клавиша отмены.
Capital20Клавиша CAPS LOCK.
CapsLock20Клавиша CAPS LOCK.
Clear12Клавиша CLEAR.
Control131072Клавиша CTRL.
ControlKey17Клавиша CTRL.
Crsel247Клавиша CRSEL.
D68Клавиша D.
D048Клавиша 0.
D149Клавиша 1.
D250Клавиша 2.
D351Клавиша 3.
D452Клавиша 4.
D553Клавиша 5.
D654Клавиша 6.
D755Клавиша 7.
D856Клавиша 8.
D957Клавиша 9.
Decimal110Клавиша десятичного разделителя.
Delete46Клавиша DEL.
Divide111Клавиша деления.
Down40Клавиша СТРЕЛКА ВНИЗ.
E69Клавиша E.
End35Клавиша END.
Enter13Клавиша ВВОД.
EraseEof249Клавиша ERASE EOF.
Escape27Клавиша ESC.
Execute43Клавиша EXECUTE.
Exsel248Клавиша EXSEL.
F70Клавиша F.
F1112Клавиша F1.
F10121Клавиша F10.
F11122Клавиша F11.
F12123Клавиша F12.
F13124Клавиша F13.
F14125Клавиша F14.
F15126Клавиша F15.
F16127Клавиша F16.
F17128Клавиша F17.
F18129Клавиша F18.
F19130Клавиша F19.
F2113Клавиша F2.
F20131Клавиша F20.
F21132Клавиша F21.
F22133Клавиша F22.
F23134Клавиша F23.
F24135Клавиша F24.
F3114Клавиша F3.
F4115Клавиша F4.
F5116Клавиша F5.
F6117Клавиша F6.
F7118Клавиша F7.
F8119Клавиша F8.
F9120Клавиша F9.
FinalMode24Клавиша окончательного режима IME.
G71Клавиша G.
H72Клавиша H.
HanguelMode21Клавиша режима IME Hanguel (поддерживается для обеспечения совместимости; используйте клавишу HangulMode).
HangulMode21Клавиша режима "Хангыль" редактора метода ввода.
HanjaMode25Клавиша режима "Ханджа" редактора метода ввода.
Help47Клавиша HELP.
Home36Клавиша HOME.
I73Клавиша I.
IMEAccept30Клавиша принятия IME, заменяет клавишу IMEAceept.
IMEAceept30Клавиша принятия IME. Является устаревшей, вместо нее используется клавиша IMEAccept.
IMEConvert28Клавиша преобразования IME.
IMEModeChange31Клавиша изменения режима IME.
IMENonconvert29Клавиша без преобразования IME.
Insert45Клавиша INS.
J74Клавиша J.
JunjaMode23Клавиша режима "Джунджа" редактора метода ввода.
K75Клавиша K.
KanaMode21Клавиша режима "Кана" редактора метода ввода.
KanjiMode25Клавиша режима "Кандзи" редактора метода ввода.
KeyCode65535Битовая маска для извлечения кода клавиши из значения клавиши.
L76Клавиша L.
LaunchApplication1182Клавиша запуска первого приложения.
LaunchApplication2183Клавиша запуска второго приложения.
LaunchMail180Клавиша запуска приложения почты.
LControlKey162Левая клавиша CTRL.
Left37Клавиша СТРЕЛКА ВЛЕВО.
LineFeed10Клавиша LINEFEED.
LMenu164Левая клавиша ALT.
LShiftKey160Левая клавиша SHIFT.
LWin91Левая клавиша с логотипом Windows (клавиатура Microsoft Natural Keyboard).
M77Клавиша M.
MediaNextTrack176Клавиша "Следующая запись".
MediaPlayPause179Клавиша приостановки воспроизведения.
MediaPreviousTrack177Клавиша "Предыдущая запись".
MediaStop178Клавиша остановки воспроизведения.
Menu18Клавиша ALT.
Modifiers-65536Битовая маска для извлечения модификаторов из значения клавиши.
Multiply106Клавиша умножения.
N78Клавиша N.
Next34Клавиша PAGE DOWN.
NoName252Константа, зарезервированная для будущего использования.
None0Нет нажатых клавиш.
NumLock144Клавиша NUM LOCK.
NumPad096Клавиша 0 на цифровой клавиатуре.
NumPad197Клавиша 1 на цифровой клавиатуре.
NumPad298Клавиша 2 на цифровой клавиатуре.
NumPad399Клавиша 3 на цифровой клавиатуре.
NumPad4100Клавиша 4 на цифровой клавиатуре.
NumPad5101Клавиша 5 на цифровой клавиатуре.
NumPad6102Клавиша 6 на цифровой клавиатуре.
NumPad7103Клавиша 7 на цифровой клавиатуре.
NumPad8104Клавиша 8 на цифровой клавиатуре.
NumPad9105Клавиша 9 на цифровой клавиатуре.
O79Клавиша O.
Oem1186Клавиша OEM 1.
Oem102226Клавиша OEM 102.
Oem2191Клавиша OEM 2.
Oem3192Клавиша OEM 3.
Oem4219Клавиша OEM 4.
Oem5220Клавиша OEM 5.
Oem6221Клавиша OEM 6.
Oem7222Клавиша OEM 7.
Oem8223Клавиша OEM 8.
OemBackslash226Клавиша OEM с угловой скобкой или обратной косой чертой на клавиатуре RT со 102 клавишами.
OemClear254Клавиша CLEAR.
OemCloseBrackets221Клавиша OEM с закрывающей квадратной скобкой на клавиатуре со стандартной раскладкой "США".
Oemcomma188Клавиша OEM с запятой на клавиатуре для любой страны или региона.
OemMinus189Клавиша OEM со знаком минус на клавиатуре для любой страны или региона.
OemOpenBrackets219Клавиша OEM с открывающей квадратной скобкой на клавиатуре со стандартной раскладкой "США".
OemPeriod190Клавиша OEM с точкой на клавиатуре для любой страны или региона.
OemPipe220Клавиша OEM с вертикальной чертой на клавиатуре со стандартной раскладкой "США".
Oemplus187Клавиша OEM со знаком плюс на клавиатуре для любой страны или региона.
OemQuestion191Клавиша OEM со знаком вопроса на клавиатуре со стандартной раскладкой "США".
OemQuotes222Клавиша OEM с одинарной/двойной кавычкой на клавиатуре со стандартной раскладкой "США".
OemSemicolon186Клавиша OEM с двоеточием на клавиатуре со стандартной раскладкой "США".
Oemtilde192Клавиша OEM со знаком тильды на клавиатуре со стандартной раскладкой "США".
P80Клавиша P.
Pa1253Клавиша PA1.
Packet231Используется для передачи символов в Юникоде в виде нажатия клавиш. Значение клавиши пакета является младшим словом 32-разрядного виртуального значения клавиши, используемого для бесклавиатурных методов ввода.
PageDown34Клавиша PAGE DOWN.
PageUp33Клавиша PAGE UP.
Pause19Клавиша PAUSE.
Play250Клавиша ВОСПРОИЗВЕСТИ.
Print42Клавиша PRINT.
PrintScreen44Клавиша PRINT SCREEN.
Prior33Клавиша PAGE UP.
ProcessKey229Клавиша PROCESS KEY.
Q81Клавиша Q.
R82Клавиша R.
RControlKey163Правая клавиша CTRL.
Return13Клавиша RETURN.
Right39Клавиша СТРЕЛКА ВПРАВО.
RMenu165Правая клавиша ALT.
RShiftKey161Правая клавиша SHIFT.
RWin92Правая клавиша с логотипом Windows (клавиатура Microsoft Natural Keyboard).
S83Клавиша S.
Scroll145Клавиша SCROLL LOCK.
Select41Клавиша SELECT.
SelectMedia181Клавиша выбора файла мультимедиа.
Separator108Клавиша разделителя.
Shift65536Клавиша SHIFT.
ShiftKey16Клавиша SHIFT.
Sleep95Клавиша перевода компьютера в спящий режим.
Snapshot44Клавиша PRINT SCREEN.
Space32Клавиша ПРОБЕЛ.
Subtract109Клавиша вычитания.
T84Клавиша T.
Tab9Клавиша TAB.
U85Клавиша U.
Up38Клавиша СТРЕЛКА ВВЕРХ.
V86Клавиша V.
VolumeDown174Клавиша уменьшения громкости.
VolumeMute173Клавиша выключения звука.
VolumeUp175Клавиша увеличения громкости.
W87Клавиша W.
X88Клавиша X.
Y89Клавиша Y.
Z90Клавиша Z.
Zoom251Клавиша МАСШТАБ.

💡Совет


Для выбора клавиши нажмите ctrl+пробел, и начните вводить нужное имя:

Изображение

Примеры

  1. Ожидать нажатия клавиши

    Wake up, Neo, select all

    Clear-Host
    Get-KeyState Z|Out-Null # Обнулить статус клавиши перед началом проверки

    Write-Host "Ожидание нажатия клавиши Z" -ForegroundColor Green

    while (!(Get-KeyState Z)) { # ждать пока не нажата клавиша Z
    Start-Sleep -m 10
    }
    Show-MessageBox "Нажата клавиша Z" -Topmost|Out-Null
  2. Узнать зажата ли клавиша в момент вызова функции.

    Wake up, Neo, select all

    Clear-Host
    while($true){
    if((Get-KeyState Z) -eq 2){
    Write-Host "Клавиша Z зажата" -ForegroundColor Cyan
    }
    else{
    Write-Host "Клавиша Z не зажата" -ForegroundColor Red
    }
    Start-Sleep -Milliseconds 100
    }
  3. Проверить включена ли клавиша CapsLock.

    Wake up, Neo, select all

    Clear-Host
    if(Get-KeyState CapsLock -Toggle){
    Write-Host "CapsLock включен" -ForegroundColor Cyan
    }
    else{
    Write-Host "CapsLock выключен" -ForegroundColor Red
    }
  4. Ожидать пока левая кнопка мыши будет зажата более двух секунд.

    Wake up, Neo, select all

    Clear-Host
    Show-Hint "Зажмите левую кнопку мыши на 2 секунды`r`nЧтобы продолжить скрипт" -Name hint0 -Position 300, 100 -Duration 0 -Vision
    while($true){
    $time = (Get-Date).AddSeconds(2)
    while( (Get-KeyState LButton) -and ($time - (Get-Date)).TotalMilliseconds -gt 0 ){
    Write-Host "Левая кнопка мыши зажата $([math]::Round(($time - (Get-Date)).TotalMilliseconds))" -ForegroundColor Cyan
    Start-Sleep -Milliseconds 50
    }
    if( ($time - (Get-Date)).TotalMilliseconds -le 0 ){
    Write-Host "Левая кнопка мыши нажата больше 2 секунд" -ForegroundColor Green
    break
    }
    Start-Sleep -Milliseconds 50
    }

    Close-Hint hint0
    Write-Host "Дальше нужный код" -ForegroundColor Yellow