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