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 :

Détecter clic de souris hors form


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de MrThorr
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 83
    Par défaut Détecter clic de souris hors form
    Bonjour,

    Je suis en traind e faire une petite appli qui lance un chrono, et j'aimerais qu'elle enregistre un temps a chaque clic de souris.

    Mais il faut que les clic de souris soient capturés méme quand l'application est réduite (le pc sert a autre choses en méme temps).

    J'ai cherché sur le net, conclusion il faut passer par un hook souris, mais je ne trouve pas de source en vb.net... il y en as beacoup en C# mais rien pour moi .

    Avez vous une piste ?

    Merci d'avence !

    Cordialement

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Je ne connais pas d'exemple en VB.NET, mais celui ci en C# est très bien :
    http://www.codeproject.com/KB/system...ystemhook.aspx

    Tu peux le convertir en VB.NET si tu veux, ou plus simplement, utiliser directement la DLL à partir de VB.NET... Les 2 DLL Kennedy.ManagedHooks.dll et SystemHookCore.dll sont nécessaires, mais c'est la 1e qu'il faut référencer dans ton projet VB.NET (l'autre est une DLL native, elle doit juste se trouver dans le même répertoire)

  3. #3
    Membre éclairé Avatar de MrThorr
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 83
    Par défaut
    Bonjour et merci de votre réponse !

    Je commence le VB et j'avoue que je suis un peu perdu..

    J'ai importé la dll dans le projet, je l'ai déclaré en faisant un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Imports Kennedy.ManagedHooks
    , mais impossible d'intensier l'objet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mouseHook = new MouseHook();
    , l'erreur retournée est : mouseHook : déclaration inattendue.

    Avez vous une idée?

    Cordialement

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par MrThorr Voir le message
    J'ai importé la dll dans le projet, je l'ai déclaré en faisant un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Imports Kennedy.ManagedHooks
    Ca ne suffit pas, il faut ajouter une référence à la DLL dans le projet (clic droit sur le projet, ajouter une référence)

    Citation Envoyé par MrThorr Voir le message
    mais impossible d'intensier l'objet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mouseHook = new MouseHook();
    l'erreur retournée est : mouseHook : déclaration inattendue.
    Il n'y a pas de point-virgule en VB.NET...
    Et il faut déclarer l'objet avant de pouvoir l'instancier. D'autre part, évite de donner à une variable le même nom que son type...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim hook As MouseHook
    hook = New MouseHook()
    Ou alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim hook As New MouseHook()

  5. #5
    Membre éclairé Avatar de MrThorr
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 83
    Par défaut
    Pardon, c'est une erreur, je n'ai pas mi de point virgule (mauvaise habitude du C ).

    Voici mon code :

    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
    Imports Kennedy.ManagedHooks
    
    Public Class Form1
        Dim mouseHook As New MouseHook
       mouseHook = MouseHook()
    
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
    
        End Sub
    
        Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            mouseHook.InstallHook()
    
    
        End Sub
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            mouseHook.UninstallHook()
        End Sub
    
    
    End Class
    J'ai une erreur au mouseHook : Déclaration inattendue...

    J'ai pourtant respecté la syntaxe non ??


  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    On ne peut pas mettre d'instructions directement dans le corps de la classe, seulement des déclarations. En plus, la ligne en gras est inutile, puisque mouseHook est directement initialisé lors de sa déclaration...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Détecter clic de souris sur une autre application
    Par xenos dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 05/08/2010, 09h18
  2. Detection de la souris hors Form
    Par titip dans le forum Windows Forms
    Réponses: 1
    Dernier message: 24/08/2008, 17h00
  3. Evenement souris hors Form:
    Par Snooky68 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 20/07/2008, 11h28
  4. Détecter un clic de souris
    Par illioc dans le forum Delphi
    Réponses: 17
    Dernier message: 12/02/2007, 00h59
  5. Réponses: 8
    Dernier message: 14/03/2005, 21h43

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