2012-03-20 46 views
6

我希望能够打开和关闭键盘上的“Num Lock”键。我已经在网络上尝试了多个例子,但都没有成功。这是我有一个解决方案最接近的事:PowerShell:打开和关闭“Num Lock”。

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

上面的代码看起来似乎是工作,我看到我的键盘闪光“的Num Lock”指示灯一秒钟,但它不“棒”。

回答

12

我经历了你做的同样的开/关闪烁。

这对我工作得很好,虽然,不妨一试:

$wsh = New-Object -ComObject WScript.Shell 
$wsh.SendKeys('{NUMLOCK}') 
+0

完美!这工作完美。 – Vippy 2012-03-20 22:41:33

+0

(这让我想知道安迪没有遇到过哪些Powershell问题!) – Sune 2012-03-21 06:26:24

+0

似乎像“Guru”会是Andy的轻描淡写。 PowerShell霸主? – Vippy 2012-03-21 16:07:14

0
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 
1

对于什么是价值,从键盘的角度来看,OS发送一组,然后的一个重置当使用[System.Windows.Forms.SendKeys] :: SendWait(“{CAPSLOCK}”)时,切换键(caps,scroll lock,numlock),但仅使用WScript.Shell发送单个事件。