23/04/09 8:17
Sal47
Buongiorno a tutti, sono alle prime armi con il VB6 e vi sarei grato per un un aiuto.
In un programma che sto preparando ho necessità di attivare via codice il tasto CapsLock e, sempre via codice, disattivarlo alla chiusura del programma.
Finora utilizzando un esempio trovato sul testo "I trucchi di VB" sono riuscito ad attivare il CapsLock all'avvio del programma.
Però non riesco a capire come fare a disattivarlo. Ho provato inserendo in Form Unload
istruzioni analoghe ma il risultato è sempre negativo.
Grazie a chiunque possa aiutarmi.
Riporto sotto il codice allegato e funzionante per la sola attivazione.
In "Generale":
________________________________________________________________
Sub SetCapsLockKey(ByVal newState As Boolean)
Const KEYEVENTF_KEYUP = &H20 ' e non &H2 come da pag. 176/177 trucchi vb
If CBool(GetKeyState(vbKeyCapital)) <> newState Then
keybd_event vbKeyCapital, 0, 0, 0
keybd_event vbKeyCapital, 0, KEYEVENTF_KEYUP, 0
End If
End Sub
--------------------------------------------------------------------------
Private Sub Form_Load()
' istruzione per premere e rilasciare via codice il CapsLock
SetCapsLockKey (vbKeyCapital)
' e se era spento correggere la casella di testo relativa
If txtCapsLock <> "Acceso" Then txtCapsLock = "Acceso"
End Sub
_________________________________________________________________
E in un "modulo bas":
' API per conoscere lo stato dei tasti Lock
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Long
' API per attivare lo stato del tasto Capslock
Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
_________________________________________________________________
Ancora grazie.
In un programma che sto preparando ho necessità di attivare via codice il tasto CapsLock e, sempre via codice, disattivarlo alla chiusura del programma.
Finora utilizzando un esempio trovato sul testo "I trucchi di VB" sono riuscito ad attivare il CapsLock all'avvio del programma.
Però non riesco a capire come fare a disattivarlo. Ho provato inserendo in Form Unload
istruzioni analoghe ma il risultato è sempre negativo.
Grazie a chiunque possa aiutarmi.
Riporto sotto il codice allegato e funzionante per la sola attivazione.
In "Generale":
________________________________________________________________
Sub SetCapsLockKey(ByVal newState As Boolean)
Const KEYEVENTF_KEYUP = &H20 ' e non &H2 come da pag. 176/177 trucchi vb
If CBool(GetKeyState(vbKeyCapital)) <> newState Then
keybd_event vbKeyCapital, 0, 0, 0
keybd_event vbKeyCapital, 0, KEYEVENTF_KEYUP, 0
End If
End Sub
--------------------------------------------------------------------------
Private Sub Form_Load()
' istruzione per premere e rilasciare via codice il CapsLock
SetCapsLockKey (vbKeyCapital)
' e se era spento correggere la casella di testo relativa
If txtCapsLock <> "Acceso" Then txtCapsLock = "Acceso"
End Sub
_________________________________________________________________
E in un "modulo bas":
' API per conoscere lo stato dei tasti Lock
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Long
' API per attivare lo stato del tasto Capslock
Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
_________________________________________________________________
Ancora grazie.
aaa