Supportnet Computer
Planet of Tech

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>.




Antwort 2 von xx23

Status überprüfen:
'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.)?

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: