Включить или отключить блокировку прокрутки

Я использую PowerShell в своем скрипте для проверки состояния различных клавиш, таких как NumLock и CapsLock.

powershell.exe -Command [Console]::CapsLock
powershell.exe -Command [Console]::NumberLock

Но я не нашел способа проверить состояние ScrollLock через консольную команду PowerShell. Ребята, скажите, почему powershell.exe -Command [Console]::ScrollLock не работает и что нужно сделать?

2 ответа

Вы можете получить ScrollLock ключевое состояние с GetKeyState() функция от user32.dll родной Windows API:

Add-Type -MemberDefinition @'
[DllImport("user32.dll")] 
public static extern short GetKeyState(int nVirtKey);
'@ -Name keyboardfuncs -Namespace user32

# 0x91 = 145, the virtual key code for the Scroll Lock key 
# see http://www.foreui.com/articles/Key_Code_Table.htm
if([user32.keyboardfuncs]::GetKeyState(0x91) -eq 0){
    # Scroll Lock is off
}
else {
    # Scroll Lock is on
}

Вы также можете получить его, запустив:

[System.Windows.Forms.Control]::IsKeyLocked('Scroll')

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