Qui c'e' quello che ti serve:
codice:
Option Explicit
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Function GetKeyState Lib "user32" (ByVal nVK As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal milliSec As Long)
Sub SetKey(ByVal tasto As Integer, ByVal stato As Boolean)
' L'argomento "tasto" puo' assumere i valori 1, 2 o 3 che corrispondono ai 3 led di Lock.
' L'argomento "stato" imposta (True) o spegne (False) il led di Lock.
Const KEYEVENTF_KEYUP = &H2
Dim Kcode As Byte
If tasto < 1 Or tasto > 3 Then Err.Raise 5
If GetKey(tasto) <> stato Then
Kcode = Choose(tasto, vbKeyNumlock, vbKeyCapital, vbKeyScrollLock)
keybd_event Kcode, 0, 0, 0
keybd_event Kcode, 0, KEYEVENTF_KEYUP, 0
End If
End Sub
Function GetKey(ByVal tasto As Integer) As Boolean
' L'argomento "tasto" puo' assumere i valori 1, 2 o 3 che corrispondono ai 3 led di Lock.
' La funzione restituisce lo stato del tasto: True se premuto/acceso, altrimenti False.
Dim Kcode As Long
If tasto < 1 Or tasto > 3 Then Err.Raise 5
Kcode = Choose(tasto, vbKeyNumlock, vbKeyCapital, vbKeyScrollLock)
GetKey = GetKeyState(Kcode)
End Function
A questo punto per far lampeggiare un led devi:
- accenderlo con SetKey 1, True
- fare un piccola pausa con, ad es., Sleep 20
- spegnere il led con SetKey 1, False
(dove SetKey 1 agisce sul primo led, ovviamente puoi usare anche 2 e 3)
Potresti usare un timer ( o magari 3, per far lampeggiare ciascun led con frequenza diversa...)
Un piccolo esempio con un Command Button potrebbe essere il seguente:
codice:
Private Sub Command1_Click() ' esempio di come far "lampeggiare" i led
Dim i As Integer, T As Integer
For i = 1 To 30 'cicli di lampeggio
For T = 1 To 3 'ciclo sui 3 tasti di Lock
SetKey T, True 'accende un led
Sleep 20 'piccola pausa
SetKey T, False 'spegne il led
Next
Next
SetKey 1, False 'resetta i 3 Lock
SetKey 2, False
SetKey 3, False
End Sub
per utilizzare frequenze diverse puoi sostituire Sleep 20
con Sleep 15 + 5 * T
(tieni presente che in questo semplice esempio il VB si occupa di far lampeggiare i led e non puo' elaborare altro, se utilizzi dei Timer non hai questo problema....)
E vai di fantasia..... (ma non chiedermi di far lampeggiare i led al tempo della tua musica preferita !
)
Ciao !