Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Intermittenza Nella Tastiera

    ciao a tutti!! cerco qualcuno che possa aiutarmi a fare un programmino che faccia accendere a intermittenza le lucine della tastiera (bloc num; blocc scorr ect). Credo che si deve uttilizzare qualche funzione del tipo keypress o qualcosa del genere legato ai codici ascii.. se qualcuno sapesse come fare lo prego di aiutarmi.. grazie
    ciao

  2. #2
    Linguaggio?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    visual basic

  4. #4
    VB6 o VB.NET?
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    vb6

  6. #6
    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 !
    IceCube_HT (VB6 fan Club)

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466

    Moderazione

    Originariamente inviato da Boldotipo
    vb6
    La prossima volta, apri una discussione conforme al Regolamento indicando il linguaggio nel titolo, in modo che non ci vogliano 3/4 messaggi per risalire semplicemente al linguaggio - e alla versione - che stai utilizzando.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    grazie mille ice!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.