Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

AJOUTER N'IMPORTE QUEL RACCOURCI À VOS MENUS (HOOK CLAVIER)


Information sur la source

Catégorie :Formulaire Classé sous : shortcut, raccourci, hook, clavier, menu Niveau : Expert Date de création : 06/08/2008 Date de mise à jour : 07/08/2008 20:16:55 Vu / téléchargé: 2 731 / 210

Note :
Aucune note

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
Salut,

Alors cette source permet d'ajouter à n'importe quel menu standard de VB n'importe quel raccourci personnalisé.

Utile dans pleins de cas, parce que les raccourcis qui sont permis par VB sont très très limités !!


Dans cet exemple, il est possible de définir des raccourcis de type :
Ctrl ET/OU Shift ET/OU Alt ET Touche
Touche peut être A,B,C...,F1,F2,Tab,Left,Fin,Suppr...
N'importe quelle touche quoi !


Vous pouvez donc définir des raccourcis de type :
Alt + Flèche gauche
Ctrl + Shift + Tab
F12
Shift + A
... etc


A (éventuellement) adapter pour plus de possibilités (mais je crois que c'est AMPLEMENT suffisant).


Enjoy !!!!!

Note : j'ai fait çà à l'arrache ce soir, peut être qu'il y a des erreurs :-)
Note 2 : utilisation d'interfaces, donc peut être pas super optimisé car je suis pas expert là dedans ^^
Note 3 : j'ai pas cherché si çà existait déjà, désolé si c'est le cas... mais çà m'étonnerait :-)
@+
 

Source

  • ' A mettre en début de Form
  • Implements IShortCut
  • Private Sub AddShortCuts()
  • ' Ajout des raccourcis
  • Call AddShortcutToMenu("Open", Me.mnuOpen, "Ctrl+Shift+O", Me, vbCtrlMask, vbShiftMask, vbKeyO)
  • Call AddShortcutToMenu("Previous", Me.mnuPrev, "Alt+Flèche gauche", Me, vbAltMask, , vbKeyLeft)
  • Call AddShortcutToMenu("Next", Me.mnuNext, "Alt+Flèche droite", Me, vbAltMask, , vbKeyRight)
  • Call AddShortcutToMenu("About", Me.mnuAbout, "Ctrl+Alt+F1", Me, vbCtrlMask, vbAltMask, vbKeyF1)
  • Call AddShortcutToMenu("Save", Me.mnuSave, "Shift+S", Me, vbShiftMask, , vbKeyS)
  • Call AddShortcutToMenu("Topic", Me.mnuTopic, "F1", Me, , , vbKeyF1)
  • Call AddShortcutToMenu("Close", Me.mnuClose, "Alt+F4", Me, vbAltMask, , vbKeyF4)
  • End Sub
  • ' C'est ici que l'on récupère les activations des raccourcis
  • Private Sub IShortCut_ShortCutActivated(shortcutTag As String)
  • Select Case shortcutTag
  • Case "Open"
  • Call mnuOpen_Click
  • Case "Next"
  • Call mnuNext_Click
  • Case "Previous"
  • Call mnuPrev_Click
  • Case "About"
  • Call mnuAbout_Click
  • Case "Save"
  • Call mnuSave_Click
  • Case "Topic"
  • Call mnuTopic_Click
  • Case "Close"
  • Call mnuClose_Click
  • End Select
  • End Sub
' A mettre en début de Form
Implements IShortCut



Private Sub AddShortCuts()
    ' Ajout des raccourcis
    Call AddShortcutToMenu("Open", Me.mnuOpen, "Ctrl+Shift+O", Me, vbCtrlMask, vbShiftMask, vbKeyO)
    Call AddShortcutToMenu("Previous", Me.mnuPrev, "Alt+Flèche gauche", Me, vbAltMask, , vbKeyLeft)
    Call AddShortcutToMenu("Next", Me.mnuNext, "Alt+Flèche droite", Me, vbAltMask, , vbKeyRight)
    Call AddShortcutToMenu("About", Me.mnuAbout, "Ctrl+Alt+F1", Me, vbCtrlMask, vbAltMask, vbKeyF1)
    Call AddShortcutToMenu("Save", Me.mnuSave, "Shift+S", Me, vbShiftMask, , vbKeyS)
    Call AddShortcutToMenu("Topic", Me.mnuTopic, "F1", Me, , , vbKeyF1)
    Call AddShortcutToMenu("Close", Me.mnuClose, "Alt+F4", Me, vbAltMask, , vbKeyF4)
End Sub




' C'est ici que l'on récupère les activations des raccourcis
Private Sub IShortCut_ShortCutActivated(shortcutTag As String)

    Select Case shortcutTag
        Case "Open"
            Call mnuOpen_Click
        Case "Next"
            Call mnuNext_Click
        Case "Previous"
            Call mnuPrev_Click
        Case "About"
            Call mnuAbout_Click
        Case "Save"
            Call mnuSave_Click
        Case "Topic"
            Call mnuTopic_Click
        Case "Close"
            Call mnuClose_Click
    End Select
    
End Sub

Conclusion

Et voilà !

Commentaires, notes, critiques sont les bienvenus.
@+
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

07 août 2008 20:16:55 :
Fixed a bug ("primary key" wasn't good defined) + added GetForegroundWindow call to check our form has the focus /////// corrigé un bug (la clé primaire était mal définie) + ajouté appel à GetForegroundWindow pour vérifier que notre form a le focus

Commentaires et avis

signaler à un administrateur
Commentaire de violent_ken le 06/08/2008 23:58:00

Bon, je me rend compte que j'ai oublié un truc : vérifier que la form est active avant de valider le raccourci.

Manque juste un appel à une fonction de l'API Win32 et un test dans la méthode KeyboardFilter.


J'avais pas vu çà non plus http://www.vbfrance.com/codes/EVENEMENT-RACCOURCIS-CLAVIER_7330.aspx ,Renfield a décidément codé beaucoup de chose ^^
M'enfin, la méthode est différente.

@+

signaler à un administrateur
Commentaire de ghuysmans99 le 07/08/2008 07:57:59

Il sert à quoi, le "Implements" ?

signaler à un administrateur
Commentaire de violent_ken le 07/08/2008 08:13:05

Salut,

il sert à implémenter la classe IShortCut.

En gros, dans le code de notre form, on a çà :
Private Sub IShortCut_ShortCutActivated(shortcutTag As String)

qui est une méthode de l'interface. Pour qu'elle soit accessible dans notre form, il faut donc faire le Implements.

@+

signaler à un administrateur
Commentaire de ghuysmans99 le 07/08/2008 09:30:31

Oki !

signaler à un administrateur
Commentaire de violent_ken le 07/08/2008 20:18:17

MAJ :
- bug corrigé
- activation du raccourci que dans le cas où la form est bien celle qui a le focus

@+

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Hook du clavier [ par Icem@n ] quelqu'un a t'il les source d'une DLL qui permets de faire un HOOK sur le clavier : setwindowshookexMerci d'avance Clavier [ par Sinrad ] Comment désactiver les 2 touches windows (menu démarrer et menu contextuel), avec VB 5.0 Entreprise.Merci d'avance.Et bravo pour le site, une mine d'o Creer un raccourci [ par Béné ] Bonjour,J'essaie de creer un raccourci dans le Menu Demarrer avec VB6.J'ai trouve un petit bout de code que j'ai adapte (ci-dessous).Malheureusement, Raccourci clavier vbScript & asp [ par ypothier ] Comment je fais un raccourci clavier ??? Comme lorsqu'on appuie sur "CTRL+S" dans word, ca permet de sauvegarder. Présentement, j'utilise "self.event. Touche de raccourci sans menu [ par Alexandre Gauthier ] comment mettre des touche de raccourci sans faire un menu... comme ctrl-c (commande) del (commande) etcthx Comment enrayer l'appui sur la touche "menu demarrer" du clavier svp [ par DarkSethys ] Salut, je cherche une reponse a cette question, pour des raison de securite, la touche "menu demarrer" du clavier ne doit en aucun cas afficher ce pt1 Keypress Touche F10 [ par jeffcantin ] Bonjour à tous...J'utilise la touche F10 pour faire un raccourci mais lorsque je clique sur cette touche, cela active mon menu (Bref ca va dans le men Besion d'aide : raccourci clavier !!!!!!! [ par barth707 ] Bonjour,j'ai regarder toutes les sources et faq sur les raccourcis clavier, mais je n'arrive pas à faire un raccourci clavier sur un form. Je ne compr raccourci clavier ? [ par patgphy ] Je voudrai que lors de l'éxécution de mon appli, au moment de rentrer une date, il soit possible d'utiliser F2 (par exemple) pour rentrer la date du j raccourci clavier pour macro sous outlook [ par Sintec16 ] Bonjour,Je suis en train de finaliser un dév sous Outlook XP... Mais pour qu'il soit plus facile d'accès je voudrais que mes macros soient accessible


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.