VB 5/6-Tipp 0181: Caps-, Num- und Scrollock Tasten kontrollieren
von ActiveVB
Beschreibung
Wer den Zustand der Sondertasten Capslock, Numlock und Scrollock erfahren und kontrollieren möchte, ist hiermit bestens bedient. Der Zustand der Tastatur wird in ein Bytearray eingelesen und kann auf diese Art auch wieder zurückgeschrieben werden. Somit ist es möglich den Zustand mehrer Tasten gleichzeitig zu ändern.Diese Geschichte funktioniert nicht unter NT, dort ist die API-Funktion 'KeyBoardEvent' zu verwenden.
Schwierigkeitsgrad: | Verwendete API-Aufrufe: | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei Project1.vbp ------------- '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Kontrollkästchen-Steuerelement "Check1" ' Steuerelement: Timersteuerelement "Timer1" ' Steuerelement: Schaltfläche "Command1" (Index von 0 bis 2) ' Steuerelement: Beschriftungsfeld "Label1" (Index von 0 bis 2) Option Explicit Private Declare Function GetKeyboardState Lib "user32" _ (pbKeyState As Byte) As Long Private Declare Function SetKeyboardState Lib "user32" _ (lppbKeyState As Byte) As Long Const VK_NUMLOCK = &H90 Const VK_SCROLL = &H91 Const VK_CAPITAL = &H14 Private Sub Form_Load() Timer1.Enabled = False Timer1.Interval = 50 Call Toggle(7) Call Toggle(7) End Sub Private Sub Command1_Click(Index As Integer) Call Toggle(2 ^ Index) End Sub Private Sub Check1_Click() If Check1.Value = vbChecked Then Timer1.Enabled = True Else Timer1.Enabled = False End If End Sub Private Sub Timer1_Timer() Call Toggle(Rnd * 8) End Sub Private Sub Toggle(Key As Integer) If Key And 1 Then If ToggleKey(VK_NUMLOCK) Then Label1(0).BackColor = &H80FF80 Else Label1(0).BackColor = &H4000& End If End If If Key And 2 Then If ToggleKey(VK_CAPITAL) Then Label1(1).BackColor = &H80FF80 Else Label1(1).BackColor = &H4000& End If End If If Key And 4 Then If ToggleKey(VK_SCROLL) Then Label1(2).BackColor = &H80FF80 Else Label1(2).BackColor = &H4000& End If End If End Sub Private Function ToggleKey(Key As Byte) As Boolean Dim State As Boolean Dim Keys(0 To 255) As Byte Call GetKeyboardState(Keys(0)) State = Keys(Key) If State <> True Then Keys(Key) = 1 Else Keys(Key) = 0 End If Call SetKeyboardState(Keys(0)) ToggleKey = Not State End Function '---------- Ende Formular "Form1" alias Form1.frm ---------- '-------------- Ende Projektdatei Project1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 7 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von Alex am 02.02.2007 um 17:35
@ Von Philipp.Fister am 06.06.2005 um 23:01
Kannste mir das vll mal geben? :)
Kommentar von Kriechi am 04.03.2006 um 20:35
http://support.microsoft.com/?kbid=177674#XSLTH3126121122120121120120
alles schon beschreiben mit beispiel!
bitte den tipp ändern!
mfg
Kommentar von Philipp.Fister am 06.06.2005 um 23:01
Ich habe das Prgramm mal total neu überarbeitet habe jetzt ein Version die unter XP funkt. Sollten die Betreiber dieser Website interesse daran haben vielleicht sogar als tip einzustellen dann bitte an mich ne mail. Und ich würde es euch geben.
Gruß Philipp
Kommentar von Bronz am 17.01.2003 um 15:13
Musst die Zahlen mit AND verknüpfen, glaub ich...
Kommentar von tolki am 22.11.2002 um 11:38
der code ist ja wirklich mal ein beispiel für unübersichtlichkeit! die gleichen aufrufe in nem anderen code funzen dann übrigens!
Kommentar von The_Gumbler am 18.09.2001 um 20:09
anscheinend weiß das niemand... :(((
Kommentar von The_Gumbler am 15.09.2001 um 12:01
ich hätte mal eine frage: wie kann ich alle tasten (capslock, scrolllock und numlock) gleichzeitig aus bzw einschalten