none
Compteur de clic de souris RRS feed

  • Question

  • Bonjour,

    Je recherche a faire un petit logiciel d'ergonomie et donc de compter le nombre de clic effectuer sur le pc.

    Pouvez vous m'aider je ne sais pas quoi utiliser.

     

    Merci à tous

    mardi 29 mars 2011 12:21

Réponses

Toutes les réponses

  • Bonjour,

    Pas certain que soit soit si simple ou même réalisable en VB ?

    Un programme qui tourne en permanence, ça oui, suffit de le lancer au démarrage dans le bon dossier sans lui mettre de feuille, mais ensuite, lui dire d'aller lire "où et comment ?" les cliques... je ne suis pas certain que ce soit directement du domaine de VB, c'est plutôt de la programmation système ?

    Quand tu auras trouvé où et comment lire les cliques du PC, tu auras plus facilement le reste de la réponse...

    Cordialement.

     



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire
    mardi 29 mars 2011 13:13
  • Bonjour,

     

    Voici un article sur l’implémentation d’un mouse hook globale :

    http://www.colinneller.com/blog/PermaLink,guid,2838f59a-f4af-4c95-a322-b9ee5918a39c.aspx

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, SharePoint, WPF

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     


    Suivez MSDN sur Twitter 

    • Marqué comme réponse Alex Petrescu mercredi 30 mars 2011 14:32
    mardi 29 mars 2011 13:40
  • Bonjour nini06700,

    Ce que vous cherchez semble correspondre à ce que l'on appelle un Hook Global de souris.

    Voici une classe qui peut vous être utile :

    http://sim0n.wordpress.com/2009/03/28/vbnet-mouse-hook-class/

    Si vous avez des questions, n'hésitez pas.

    Il suffira de mettre en place un simple compteur de clics dans les évènements concernés de la classe.

    Edit : devancé par Alex :)


    N'hésitez pas à poser des questions si un problème subsiste ou quelque chose n'est pas clair. Dans l'autre cas, veuillez indiquer que le problème est résolu. Cordialement. - Best Regards.
    • Marqué comme réponse Alex Petrescu mercredi 30 mars 2011 14:32
    mardi 29 mars 2011 13:53
  • Re bonjour,

     

    Dans ce cas j'hesite pas parceque la tout ce code pour un comptage de clic j'ai vraiment du mal

     

    Surtout avec mon niveau de newbee en prog...

    Merci en tous cas de prendre mon projet à coeur.

    mardi 29 mars 2011 16:02
  • Bonsoir nini06700,

    Je vais prendre le temps de vous expliquer le fonctionnement de cette classe le plus précisément et pertinemment possible :

    - Dans les déclarations de fonctions (via les Declare Function) on se prépare à utiliser directement les APIs (dll) de Windows. Ici on utilisera seulement user32.dll qui contient les fonctions suivantes (entre autres) :

     SetWindowsHookEx  

    Cette fonction met en place une procédure d'interception d'évènements système. Elle contient plusieurs paramètres :

    • idHook : C'est le type d'événements que l'on souhaite intercepter. La constante WH_MOUSE_LL nous servira ici, car elle indiquera qu'on intercepte les évènements souris.
    • lpfn  : C'est une référence à la procédure d'interception, on utilisera un délégué pour cela.
    • hmod : C'est le handle ("l'identification") de la dll qui contient la fonction (si on utilise pas de dll, hmod vaut 0).
    • dwThreadId : C'est l'identifiant du thread à intercepter. Ici, pour intercepter tous les threads (hook Global) on met 0.

     UnhookWindowsHookEx

    Cette fonction arrête simplement une interception en cours.

     CallNextHookEx 

    Cette fonction permet d'appeler la procédure d'interception suivante (si il y en a une) afin de ne pas empêcher l'interception des évènements utilisée par un ou des autres programmes.

    Après on a des structures et enumérations plus ou moins fournies par Microsoft. Ainsi que des constantes copiées telles quelles.

    Dans le New on déclare un nouveau délégué, qui reçoit l'adresse de notre fonction de rappel (callback), cette dernière sera appellée automatiquement par l'API avec les paramètres nécessaires (à chaque clics/double-clics/scroll etc...) et s'appelle ici MouseProc .

    On teste simplement le paramètre wParam (qui contient ces infos) avec un Select Case. On utilise donc les constantes afin de savoir qu'est-ce qui vient d'être intercepté. lParam contient les coordonnées de la souris.

    On déclenche l'événement correspond à chaque fois, et à la fin de la fonction on retourne CallNextHookEx pour donner les infos aux autres programmes.

     

    Une fois tout cela écrit, il nous reste à déclarer une variable globale WithEvents (car comme on l'a vu on déclenche des événements, et on souhaite les intercepter par la suite).

    Vient donc la partie finale du code, présente à la fin de la page, qui parle d'elle-même (je pense ?). On écrit simplement ce qu'il vient de se passer ainsi que les coordonnées.

    Voilà, sauf distraction de ma part.

     


    N'hésitez pas à poser des questions si un problème subsiste ou quelque chose n'est pas clair. Dans l'autre cas, veuillez indiquer que le problème est résolu. Cordialement. - Best Regards.

    mercredi 30 mars 2011 18:30