PowerShell: включить и выключить «Num Lock». - PullRequest
9 голосов
/ 21 марта 2012

Я хотел бы иметь возможность включать и выключать клавишу «Num Lock» на клавиатуре.Я пробовал несколько примеров в Интернете и здесь, но безуспешно.Это самое близкое решение, которое у меня есть:

[void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
[System.Windows.Forms.SendKeys]::SendWait("{NUMLOCK}")

Приведенный выше код выглядит так, как будто он может работать, и я вижу, что индикатор «Num Lock» на моей клавиатуре мигает секунду, но это не так.т "придерживаться".

Ответы [ 3 ]

17 голосов
/ 21 марта 2012

Я испытал то же мерцание вкл / выкл, что и вы.

Это прекрасно работает для меня, хотя, попробуйте:

$wsh = New-Object -ComObject WScript.Shell
$wsh.SendKeys('{NUMLOCK}')
3 голосов
/ 26 апреля 2016

Для чего это стоит, с точки зрения клавиатуры, ОС отправляет набор, а затем сброс клавиши переключения (caps, scroll lock, numlock) при использовании [System.Windows.Forms.SendKeys] ::SendWait ("{CAPSLOCK}"), но отправляет только одно событие с помощью WScript.Shell.

0 голосов
/ 17 октября 2013
intTime=0
strInputVal=InputBox("Enter the time","Enter Hours in Int")
intTime=strInputVal * 60 * 60

set WshShell = WScript.CreateObject("WScript.Shell")
For i = 1 to intTime
    WScript.Sleep 500
    WshShell.SendKeys "{NUMLOCK}"
    WScript.Sleep 500
Next
WScript.Quit
Set WshShell = Nothing 
...