Tableaux spécial pour keycode

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 438 fois - Téléchargée 28 fois

Contenu du snippet

Ce tableau peut servir à queqleus personnes qui mettent des raccourcis de fonction sur des keycode et qui souhaite donné le nom de la touche par simple donné du Keycode

Source / Exemple :


'''Dans un module'''

Public MtKCd As Variant

Public Sub ChargementMtKDwn()

    Dim Var As Integer, Cp As Byte, MatUt As Variant

    ReDim MtKCd(255) As String
        
    For Var = 0 To 255
        MtKCd(Var) = "Non reconnue"
    Next
    
    For Var = 65 To 90
        MtKCd(Var) = Chr(Var)
    Next
    
    For Var = 96 To 105
        MtKCd(Var) = "Num Pad " & Cp
        Cp = Cp + 1
    Next
    Cp = 0
    
    For Var = 48 To 57
        MtKCd(Var) = CStr(Cp)
        Cp = Cp + 1
    Next
    Cp = 0
    
    MatUt = Array("*", "+", "Non reconnue", "-", ".", "/")
    For Var = 106 To 111
        MtKCd(Var) = "Num Pad " & MatUt(Cp)
        Cp = Cp + 1
    Next
    Cp = 0: Erase MatUt
    
    MatUt = Array("Espace", "Page précédente", "Page suivante", "Fin", "Origine")
    For Var = 32 To 36
        MtKCd(Var) = MatUt(Cp)
        Cp = Cp + 1
    Next
    Cp = 0: Erase MatUt

    MtKCd(45) = "Insérer": MtKCd(46) = "Supprimer"
    MtKCd(13) = "Entrée": MtKCd(19) = "Pause"
    MtKCd(145) = "Arrêt défilement": MtKCd(27) = "Echap"
    MtKCd(37) = "Flèche gauche": MtKCd(39) = "Flèche droite"
    MtKCd(38) = "Flèche haute": MtKCd(40) = "Flèche basse"

End Sub
'''Fin du module'''

'''Dans une form''' (un pti exemple)

Private Sub Form_Load()
 
    Me.KeyPreview = True 
    ChargementMtKDwn
    
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
     
    if MtKcd(KeyCode)<>"Non reconnue" then MsgBox "Vous avez pressée la touche : " & MtKcd(Keycode)
    
End Sub
'''Fin de la form'''

Conclusion :


Si la touche n'est pas reconnue il n'affiche pas la touche pressée, j'ai omis volontairement certaine touche qui pourrait interférer avec l'utilisation des raccourci Menu.

A voir également

Ajouter un commentaire Commentaires
Messages postés
70
Date d'inscription
dimanche 11 janvier 2004
Statut
Membre
Dernière intervention
1 octobre 2004

NHenry c très intéressant, mais en faisant ta boucle tu perd du temps parce que tu rajoutes des conditions.

Sinon j'ai po mis certaine comme Ctrl, Alt, F1 à F12 car ca interfere avec les raccourcis menu, et désolé mais j'ai terminé de compléter chez moi et j'ai boulier d'y remetrre (merci qd meme Lord Freddy)
Messages postés
14785
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 avril 2021
154
Je n'ai pas testé la source, mais il me semble que la premiere boucle qui met tout le tableauà "Non reconnue", tu peu la virée et mettre à la fin de ta procédure :
if Tableau(Index)="" then Fonction="Non recconnue" else Fonction=Tableau(Index)
Messages postés
157
Date d'inscription
mardi 9 décembre 2003
Statut
Membre
Dernière intervention
3 février 2005

Slt,
pour ceux qui recherche les autres touches (il manque Impr écran):
MtKCd(16) = "Shift"
MtKCd(17) = "Control"
MtKCd(18) = "Alt"
MtKCd(222) = "²"
MtKCd(9) = "Tab"
MtKCd(20) = "Cadena"
MtKCd(8) = "Retour"
MtKCd(37) = "Flèche gauche"
MtKCd(38) = "Flèche haut"
MtKCd(39) = "Flèche droite"
MtKCd(40) = "Flèche bas"
MtKCd(144) = "VerrNum"
MtKCd(92) = "Windows"
MtKCd(93) = "Menu"
MtKCd(27) = "Echape"
MtKCd(12) = "Num Pad 5"
MtKCd(221) = "^"
MtKCd(186) = "$"
MtKCd(192) = "ù"
MtKCd(220) = "*"
MtKCd(188) = ","
MtKCd(190) = ";"
MtKCd(191) = ":"
MtKCd(223) = "!"
MtKCd(226) = "<"
MtKCd(219) = ")"
MtKCd(187) = "="

voila et pour les touche F1 a F12 ya plus simple soit:
For Var = 112 To 123
MtKCd(Var) = "F" & Var - 111
Next

bon jespere n'avoir pa dit de bêtise ^^
a+
Messages postés
4
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
7 janvier 2005

C'est très intéressant.
J'ai aussi une petite routine qui sert à detecter les touches de fonctions (F1, F2 ...)
La voilà
Pour compléter la routine, on peut ajouter le test des vbKey

Public Sub Touches_fct(KeyCode)

If KeyCode = vbKeyF5 Then
MDIForm1.Toolbar1_ButtonClick MDIForm1.Toolbar1.Buttons(1)
ElseIf KeyCode = vbKeyF6 Then
MDIForm1.Toolbar1_ButtonClick MDIForm1.Toolbar1.Buttons(2)
ElseIf KeyCode = vbKeyF7 Then
MDIForm1.Toolbar1_ButtonClick MDIForm1.Toolbar1.Buttons(3)
ElseIf KeyCode = vbKeyF8 Then
MDIForm1.Toolbar1_ButtonClick MDIForm1.Toolbar1.Buttons(4)
ElseIf KeyCode = vbKeyF1 Then
MDIForm1.Toolbar1_ButtonClick MDIForm1.Toolbar1.Buttons(5)
ElseIf KeyCode = vbKeyF9 Then
MDIForm1.Toolbar1_ButtonClick MDIForm1.Toolbar1.Buttons(6)
End If
End Sub

C'est en fait une routine qui doit être appelée dans l'événement KEYDOWN de la forme. Elle fonctionne à condition de mettre la propriété KEYPREVIEW de la forme à TRUE.
Messages postés
1114
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
6 mai 2007

Je voulai justement le faire et tu l'a fait, merci a toi, c'est pile ce que je voulai en plus

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.