IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Créer une combinaison de touches globale


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 127
    Par défaut Créer une combinaison de touches globale
    Salut,

    Je voudrais trouver le moyen d'ouvrir un des formulaires de mon application à l'aide d'une combinaison de touches qui fonctionnerait même lorsque je ne suis pas directement dans l'application (celle-ci étant ouverte dans la system tray (notify Icon)).

    J'ai trouvé un bout de code utilisant deux dll (Kennedy.ManagedHooks et SystemHookCore) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Dim hook_clavier As New KeyboardHook()
            AddHandler hook_clavier.KeyboardEvent, AddressOf Form1.hook_clavier_KeyboardEvent
            hook_clavier.InstallHook()
    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     Private Sub hook_clavier_KeyboardEvent(ByVal kEvent As KeyboardEvents, ByVal key As Keys)
     
            Dim msg As String = key.ToString + " " + kEvent.ToString()
     
            If msg = "F5 KeyDown" Then
                Dim f2 As New Form2
                f2.Show()
            End If
        End Sub

    Ce code fonctionne bien, mais, à la place de la touche "F5", je voudrais utiliser un raccourci à deux touches, genre Ctrl + T, et je ne sais pas comment faire.
    Je cherche depuis un petit moment et tout ce que je trouve ne ressemble pas vraiment à ce que j'ai ici.
    Savez-vous comment écrire la combinaison ?

    Sinon, connaissez-vous peut-être une meilleure façon d'y arriver?

    Merci encore pour votre aide.

    Guillaume

  2. #2
    Membre éprouvé

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Billets dans le blog
    1
    Par défaut
    je ne connais pas ces dll.

    mais si "key" est un tableau, peut être qu'il y a toutes les touches qui sont utilisées en même temps qui y sont répertoriées...

  3. #3
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Je ne sais pas si cela fonctione de la même manière avec ta Dll que avec le framework normal, mais juste au cas où, il y a quelque chose de similaire, moi pour detecter un Ctrl+A je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     If (e.Control) Then
                If e.KeyCode = Keys.A Then
                End If
    End If
    Sachant que e.Control retourne True si contrôle est pressé.

    Tu dois surement avoir des propriétés sur ton Keys.

  4. #4
    Membre expérimenté Avatar de benito9253
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 205
    Par défaut
    Ayant aussi utilisé ces dll, je ne suis pas sur que ce que tu veux faire sois possible... En effet si tu appuies sur les touche Ctrl + T, la fonction va retourner quelque chose du genre:
    touche Ctrl KeyDown
    touche T KeyDown
    touche T KeyUp
    touche Ctrl KeyUp
    Je n'ai aucune idée de comment gérer ça...

Discussions similaires

  1. Réponses: 20
    Dernier message: 27/11/2007, 14h40
  2. Réponses: 9
    Dernier message: 13/09/2007, 18h06
  3. Réponses: 3
    Dernier message: 11/10/2006, 14h25
  4. [VCL] Comment détecter une combinaison de touches ?
    Par micatmidog dans le forum Composants VCL
    Réponses: 3
    Dernier message: 23/01/2005, 14h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo