Valeur intercepté par GetAsyncKeyState

Résolu
Cjvg Messages postés 330 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 26 octobre 2017 - 5 oct. 2008 à 13:01
Cjvg Messages postés 330 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 26 octobre 2017 - 6 oct. 2008 à 11:49
Bonjour,

Sub TimerProc(ByVal Hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
    Ret = GetPressedKey
    If Ret <> sOld Then
        sOld = Ret
        sSave = sSave + sOld
Projet1F1.Text2.Text = sSave
    End If
End Sub

'----------------------------------------------------------------------

Function GetPressedKey() As String
    For Cnt = 32 To 256    
        'Get the keystate of a specified key
        If GetAsyncKeyState(Cnt) <> 0 Then
            GetPressedKey = Chr$(Cnt)
            Exit For
        End If
    Next Cnt
End Function
<hr />
   J'utilise les quelques lignes de  codes ci-dessus pour saisir des entrées clavier.
Les caractères interceptés sont ensuite affichés dans une textBox.

Problème: Lorsque je presse sur la touche   $
  , je ne récupère pas le même caractère dans ma textBox.  

Par avance merci pour votre réponse.

2 réponses

Cjvg Messages postés 330 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 26 octobre 2017
6 oct. 2008 à 11:49
 


Bonjour,


J'ai réussi à trouver une source qui traite ce sujet. Pour récupérer la totalité des lettres, des chiffres, des caractères spéciaux et des pressions exercées sur les autres touches qui ne correspondent pas un caratères (Alt Ctrl ....) il faut utiliser une table de correspondance


A titre d'exemple, les valeurs retournées


- 48 à 57 correspondent au chiffres 0 à 9 (Je simplifie. car il faut tester la touche Shift)


- 96 à 105 correspondent au chiffres 0 à 9 du clavier Numérique


- 65 à 90 correspondent au lettres A à Z (idem à valeur ascii)


- 186 correspond aux caractères £ $ (Je simplifie. car il faut tester également la touche Shift)




Un grand merci à P.Barrot qui m'a donnée la réponse à ma question avec sa source ci-dessous
http://www.vbfrance.com/article.aspx?ID=8649









Merci également à toi Rvblog pour avoir essayé de me dépanner.
3
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
5 oct. 2008 à 22:38
Salut Cjvg,

as-tu vérifié le code que tu reçois dans Cnt? est-ce bien le bon? si oui, vérifies que ta textbox est bien capable d'afficher un "$" et un chr$(36) (il suffirait de lui donner un PasswordChar égal à "$" pour qu'il n'affiche plus les "$").

pas d'autres pistes pour l'instant,
à+

rvblog<sup>n
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!</sup>
0
Rejoignez-nous