Leider nur unter Windows 95/98 nutzbar ist folgender
Tipp, der Ihnen zumindestens das Einbinden eines Controls erspart.
Dabei geht es um das Einschalten, das Ausschalten und das Umkehren des derzeitigen
Zustands.Für ein Beispielprojekt benötigen Sie eine Form mit drei Button (Coomand1 - 3).
Allgemein / Deklarationen
Const VK_CAPITAL = &H14
Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
Private kbArray As KeyboardBytes
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As
Long
Private Declare Function GetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
Private Declare Function SetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
Command1_Click (Anschalten)
GetKeyboardState kbArray
kbArray.kbByte(VK_CAPITAL) = 1
SetKeyboardState kbArray
Command2_Click (Ausschalten)
GetKeyboardState kbArray
kbArray.kbByte(VK_CAPITAL) = 0
SetKeyboardState kbArray
Command3_Click (Aktuellen Zustand umkehren)
GetKeyboardState kbArray
kbArray.kbByte(VK_CAPITAL) = IIf(kbArray.kbByte(VK_CAPITAL) = 1, 0, 1)
SetKeyboardState kbArray
Das man diesen Tipp natürlich auch auf andere Tasten anwenden kann, können Sie sich
sicher schon denken. Dazu gehört lediglich die Definition der Konstanten unter
Allgemein/Deklarationen und die entsprechende Aufrufmodifizierung.
Aus diesem Grund packe ich Ihnen gleich noch ein paar Beispiele mit rein.
Const VK_NUMLOCK = &H90
Const VK_PRINT = &H2A
Const VK_RETURN = &HD
Const VK_F1 = &H70
Const VK_ESCAPE = &H1B
Const VK_DELETE = &H2E
Für ein kleines Scherzprogramm bräuchten Sie folgende Angaben unter
Allgemein/Deklarationen.
Const VK_SCROLL = &H91
Const VK_CAPITAL = &H14
Const VK_NUMLOCK = &H90
Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type Private kbArray As KeyboardBytes
Private Declare Function GetKeyState Lib
"user32" (ByVal nVirtKey As Long) As Long
Private Declare Function GetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
Private Declare Function SetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
Desweiteren einen Timer, dessen Interval Sie auf 100 stellen und folgende Anweisung
übergeben.
GetKeyboardState kbArray
kbArray.kbByte(VK_NUMLOCK) = IIf(kbArray.kbByte(VK_NUMLOCK) = 1, 0, 1)
SetKeyboardState kbArray
GetKeyboardState kbArray
kbArray.kbByte(VK_CAPITAL) = IIf(kbArray.kbByte(VK_CAPITAL) = 1, 0, 1)
SetKeyboardState kbArray
GetKeyboardState kbArray
kbArray.kbByte(VK_SCROLL) = IIf(kbArray.kbByte(VK_SCROLL) = 1, 0, 1)
SetKeyboardState kbArray
Freudiges Lichterspiel ! |