All zu oft sind es die kürzesten Scripte, die das Leben eines Systemadministrators deutlich vereinfachen. Das folgende Script habe ich bei einer Telefonsoftware an einer Pforte benötigt. Immer wenn jemand die Numlock-Taste deaktiviert hat war die Pforte nicht mehr erreichbar. Dies hat dazu geführt, dass man spät abends angerufen wird und dem Kunden erklären muss er soll lediglich die Numlock-Taste drücken.
Leider kann man mit VBScript die Tastatur nicht abfragen, weswegen ich einen kleinen Umweg über ein VB-Programm gehen musste. Natürlich hätte ich alles direkt in der EXE implementieren können, aber warum so umständlich, wenn es sowas wie einen Statusprüfer für Tastaturen schon gibt.
Ladet euch dazu von www.robvanderwoude.com die NUMLOCK.EXE herunter und speichert die direkt unter C:\. Danach kopiert ihr euch das unten aufgeführte VBScript in euren Lieblingseditor und speichert es als .vbs Datei ab.
‘ Beschreibung
‘ Prüfe alle X Millisekunden ob Numlock aktiv ist
‘ Wenn nicht aktiere Numlock wieder
‘ Variablendeklaration
Dim strSleep, objShell
‘ Alle wieviel Sekunden soll Numlock geprüft werden
‘ 1000 = 1 Sekunde
strSleep = 10000
‘ benötigte Objekte laden
Set objShell = WScript.CreateObject("WScript.Shell")
‘ Endlosschleife wiederholt sich alle X Millisekunden
‘ anhand des in strSleep gesetzen Wertes
Do
‘ Wenn NUMLOCK.EXE den Wert 0 zurück gibt …
if (objShell.run ("c:\NUMLOCK.EXE",0,true)) = 0 then
‘ … dann aktiviere Numlock wieder
objShell.SendKeys "{NUMLOCK}"
end if
‘ Warte X Millisekunden
wscript.sleep strSleep
‘ Ende der Schleife
Loop
Beim Start der vbs-Datei läuft das Script in eine Endlosschleife. Bei jedem Durchlauf der Schleife startet die NUMLOCK.EXE und gibt mittels Errorlevel den Wert 0 oder 1 zurück. Der Wert 1 steht dafür wenn Numlock aktiviert ist und der Wert 0 wiederum wenn Numlock deaktiviert ist. Danach wartet das Script ein paar Millisekunden anhand des in Zeile 11 hinterlegten Wertes. Die NUMLOCK.EXE könnt ihr natürlich auch irgendwo anders ablegen als direkt auf C:\. Passt dazu einfach den Pfad in Zeile 20 im VBScript an.
Falls ihr das gleiche Script für Capslock benötigt, findet ihr auf www.robvanderwoude.com die passende EXE wie auch den passenden VB-Code den ihr auch für jede andere Taste umschreiben könnt.
Quellen:
- www.ashelper.de
- www.robvanderwoude.com