Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Numlock Status abfragen
Frage
Hallo,
wie kann ich mit VBScript den Status der Numlock-Taste (aktiv/nicht aktiv) abfragen, um ihn dann ggf. per SendKeys zu ändern?
Antwort 1 von edgar
mit einer x.bat Datei?
aus einem Lexikon:
NUMLOCK
Gibt an, ob die zur Zehnertastatur gehörende NUM-FESTSTELLTASTE anfangs
aktiviert (ON) oder deaktiviert (OFF) sein soll. Sie können diesen Befehl
nur innerhalb eines Menüblocks in Ihrer Datei CONFIG.SYS eingesetzen.
Syntax
NUMLOCK=[ON|OFF]
Parameter
ON|OFF
Ist ON angegeben, zeigt MS-DOS die NUM-FESTSTELLTASTE im Startmenü als
aktiviert an. Ist OFF angegeben, bleibt die NUM-FESTSTELLTASTE
deaktiviert.
Verwandte Befehle
Der Befehl NUMLOCK gehört zu den sechs speziellen CONFIG.SYS-Befehlen, mit
denen Startmenüs und mehrere Konfigurationen definiert werden können. Die
anderen Menüdefinitionsbefehle sind:
der Befehl <MENUITEM>, der ein Menüelement definiert;
der Befehl <MENUCOLOR>, der die Farben des Menütextes und des
Bildschirmhintergrundes definiert;
der Befehl <MENUDEFAULT>, der das voreingestellte Menüelement definiert;
der Befehl <SUBMENU>, der ein Untermenü definiert.
der Befehl <INCLUDE>, der den Inhalt eines Konfigurationsblocks in einen
anderen Konfigurationsblock einfügt. Dieser Befehl kann nicht in einen
Menüblock eingefügt werden.
Einen Überblick des Verfahrens zur Definition mehrerer Konfigurationen
finden Sie unter dem Thema
<Befehle zur Definition mehrerer Konfiurationen>.
aus einem Lexikon:
NUMLOCK
Gibt an, ob die zur Zehnertastatur gehörende NUM-FESTSTELLTASTE anfangs
aktiviert (ON) oder deaktiviert (OFF) sein soll. Sie können diesen Befehl
nur innerhalb eines Menüblocks in Ihrer Datei CONFIG.SYS eingesetzen.
Syntax
NUMLOCK=[ON|OFF]
Parameter
ON|OFF
Ist ON angegeben, zeigt MS-DOS die NUM-FESTSTELLTASTE im Startmenü als
aktiviert an. Ist OFF angegeben, bleibt die NUM-FESTSTELLTASTE
deaktiviert.
Verwandte Befehle
Der Befehl NUMLOCK gehört zu den sechs speziellen CONFIG.SYS-Befehlen, mit
denen Startmenüs und mehrere Konfigurationen definiert werden können. Die
anderen Menüdefinitionsbefehle sind:
der Befehl <MENUITEM>, der ein Menüelement definiert;
der Befehl <MENUCOLOR>, der die Farben des Menütextes und des
Bildschirmhintergrundes definiert;
der Befehl <MENUDEFAULT>, der das voreingestellte Menüelement definiert;
der Befehl <SUBMENU>, der ein Untermenü definiert.
der Befehl <INCLUDE>, der den Inhalt eines Konfigurationsblocks in einen
anderen Konfigurationsblock einfügt. Dieser Befehl kann nicht in einen
Menüblock eingefügt werden.
Einen Überblick des Verfahrens zur Definition mehrerer Konfigurationen
finden Sie unter dem Thema
<Befehle zur Definition mehrerer Konfiurationen>.
Antwort 2 von xx23
Status überprüfen:
Status ändern:
'API Funktion
Public Declare Function GetKeyState Lib "user32" _
(ByVal nVirtKey As Long) As Integer
'NUM Lock Status
If GetKeyState(vbKeyNumlock) = 1 Then _
MsgBox "NUM-Lock ist eingeschaltet!"
Status ändern:
'API Funktionen
Private Declare Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
Private Const VK_NUMLOCK = &H90
Private Const KEYEVENTF_KEYUP = &H2
' NUM-Lock aktivieren (falls deaktiviert)
If Not (GetKeyState(vbKeyNumlock) = 1) Then
keybd_event VK_NUMLOCK, 1, 0, 0
keybd_event VK_NUMLOCK, 1, KEYEVENTF_KEYUP, 0
End If
' NUM-Lock deaktivieren (falls aktiviert)
If (GetKeyState(vbKeyNumlock) = 1) Then
keybd_event VK_NUMLOCK, 1, 0, 0
keybd_event VK_NUMLOCK, 1, KEYEVENTF_KEYUP, 0
End If
Antwort 3 von thomas570dc
@xx23: Super, danke!! Gleich das komplette Skript, wahnsinn... :-)
Antwort 4 von thomas570dc
Hmmm...ich krieg da immer eine Fehlermeldung (Compilerfehler in Zeile 1, Zeichen 17), auch alle anderen Scripts die ich mittlerweile im Internet gefunden habe, funktionieren nicht. Habe ich vielleicht eine falsche VB-Version oder sowas (Windows XP Prof.)?