2012-03-20 79 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發送單個事件。