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

C# Discussion :

Hook d'une combinaison clavier + souris


Sujet :

C#

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 83
    Points : 87
    Points
    87
    Par défaut Hook d'une combinaison clavier + souris
    Bonsoir/Bonjour à tous!

    Je tente de créer un raccourci clavier comprenant la molette de la souris + la touche ALT de mon clavier (pour switch de fond d'écran une fois sur le bureau ^^).

    Voici mon hook (fonctionnel) pour la molette:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    public static int MouseHookProc(int nCode, IntPtr wParam, IntPtr lParam)
            {
     
                int wParamValue = wParam.ToInt32();
     
                if(wParamValue == (int)522) //Wheel
                {
     
                    //Marshall the data from the callback.
                    MSLLHOOKSTRUCT MyTagMSLLHOOKSTRUCT = (MSLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(MSLLHOOKSTRUCT));
     
                    if (MyTagMSLLHOOKSTRUCT.MouseData > 0) //up
                    {
     
                    }
                    else //and......down u_u
                    {
     
                    }
     
                }
     
                return CallNextHookEx(hHook, nCode, wParam, lParam);
     
            }
    Je mets le hook en place avec ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
                  MouseHookProcedure = new HookProc(Form1.MouseHookProc);
     
                  SetWindowsHookEx(WH_MOUSE_LL,
                          MouseHookProcedure,
                          (IntPtr)0,
                          0);
                  //Pre: HookProc et MouseHookProcedure sont déclarés plus haut tel que:
                  //public delegate int HookProc(int nCode, IntPtr wParam, IntPtr lParam);
                  //HookProc MouseHookProcedure;
    C'est peut-être la fatigue mais je ne parviens pas à vérifier si la touche alt est enfoncée au moment de l'évenement...
    Si quelqu'un a une idée je suis preneur !

    Merci de m'avoir lu!

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 83
    Points : 87
    Points
    87
    Par défaut
    Bonjour !

    Pour palier au problème j'ai mis un deuxième hook en place sur la touche alt qui place une variable à true quand la touche est enfoncée et false lorsque la touche remonte.
    Lorsque ma molette fonctionne je vérifie ensuite si ladite variable est à true.

    Ce n'est sûrement pas la bonne solution mais ça dépanne. ^^'

Discussions similaires

  1. [Clavier] JButton qui fait une combinaison clavier
    Par Dazdh dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 26/03/2009, 17h06
  2. un PC, un Mac, une seul clavier / souris
    Par Aubais30 dans le forum Ordinateurs
    Réponses: 5
    Dernier message: 21/09/2007, 17h57
  3. [WIN32] Hook clavier / souris
    Par olive_le_malin dans le forum MFC
    Réponses: 6
    Dernier message: 07/06/2006, 15h21
  4. [D7] réaction d'une TCombobox à la souris / clavier
    Par Magnus dans le forum Composants VCL
    Réponses: 3
    Dernier message: 02/09/2005, 15h15

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