Form - Attivare il CapsLock ed il NumLoc




Public Const VK_CAPITAL = &H14
Public Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
Public kbArray As KeyboardBytes
Public Declare Function GetKeyState Lib "user32" (ByVal _
nVirtKey As Long) As Long
Public Declare Function GetKeyboardState Lib "user32" _
(kbArray As KeyboardBytes) As Long
Public Declare Function SetKeyboardState Lib "user32" _
(kbArray As KeyboardBytes) As Long
'Codice

Private Sub Form_Load()
If CapsLock() = 1 Then Label1 = "On" Else Label1 = "Off"
End Sub

Private Sub cmdToggle_Click()
GetKeyboardState kbArray
kbArray.kbByte(VK_CAPITAL) = IIf(kbArray.kbByte(VK_CAPITAL) = 1, 0, 1)
SetKeyboardState kbArray
Label1 = IIf(CapsLock() = 1, "On", "Off")
End Sub

Private Sub cmdTurnOn_Click()
GetKeyboardState kbArray
kbArray.kbByte(VK_CAPITAL) = 1
SetKeyboardState kbArray
Label1 = IIf(CapsLock() = 1, "On", "Off")
End Sub

Private Sub cmdTurnOff_Click()
GetKeyboardState kbArray
kbArray.kbByte(VK_CAPITAL) = 0
SetKeyboardState kbArray
Label1 = IIf(CapsLock() = 1, "On", "Off")
End Sub

Commenti
Le API relative alla tastiera per VB4-16 e VB3 non supportano
il tipo di dati byte.
Modificando la costante di Windows in Public Const
VK_NUMLOCK = &H90, si puo' utilizzare quanto sopra per
attivare il NumLock.

In un form, aggiungi 3 command button
(cmdToggle, cmdTurnOn, cmdTurnOff) ed una label (Label1).
Aggiungi il seguente codice nel form:












( formattivareilcapslockedilnumloc.html )- by Paolo Puglisi - Modifica del 17/12/2023