2012-03-20 19 views
6

Klavyede "Num Lock" tuşunu açıp kapatmak istiyorum. Web'de birçok örnek denedim ve burada hiç başarıya ulaşmadım. "PowerShell: "Num Lock" u açıp kapatır.

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

işe yarayabilir ve ben ikinci benim klavye flaş "Num Lock" gösterge görmek gibi yukarıdaki kod görünüyor ama öyle değil: Bu Bir çözüm lazım yakın şeydir Çubuk".

cevap

12

Yaptığınız aynı açık/kapalı titremeyi yaşadım.

Gerçi benim için çalışıyor, bir deneyin: Bu klavyenin bakış açısıyla değer Ne için

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

MÜKEMMEL! Bu mükemmel çalıştı. – Vippy

+0

(Bu, Powershell'nin Andy'nin karşılaşmadığı problemleri merak ediyor!) – Sune

+0

"Guru" gibi görünüyor Andy için bir understatement olurdu. PowerShell overlord? – Vippy

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 sonra bir dizi ve bir sıfırlama gönderir [System.Windows.Forms.SendKeys] :: SendWait ("{CAPSLOCK}") kullanırken anahtar (kapaklar, kaydırma kilidi, numlock) geçiş yapar, ancak yalnızca WScript.Shell kullanarak tek bir olay gönderir.