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

Windows Forms Discussion :

Vb.net Hook Clavier


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 10
    Points : 10
    Points
    10
    Par défaut [Vb.net] Hook Clavier
    Bonjour,

    j'ai implémenté dans mon application un hook clavier afin qu'elle puisse etre piloté via le clavier.
    Tout marche bien.

    Cependant, si l'application n'est pas en foreground, le hook clavier est qd mm appelé.

    Je souhaiterais que mon Hook intercepte les evenements clavier uniquement pour mon appli.

    Voici le code que j'utilise:


    Private Declare Function SetWindowsHookEx Lib "user32" _

    Alias "SetWindowsHookExA" (ByVal idHook As Integer, _

    ByVal lpfn As KeyboardHookDelegate, ByVal hmod As Integer, _

    ByVal dwThreadId As Integer) As Integer


    ...



    callback = New KeyboardHookDelegate(AddressOf KeyboardCallback)

    KeyboardHandle = SetWindowsHookEx(WH_KEYBOARD_LL, callback, Marshal.GetHINSTANCE([Assembly].GetExecutingAssembly.GetModules()(0)).ToInt32, 0)



    D'apres ce code, j'ai l'impression de lui demander de ne gérer que les evt clavier pour mon appli( (GetExecutingAssembly))

    Mais bon ca ne marche pas

    Si vous avez une idée...

    Merci


    Rollerman

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    pour qu'un hook soit local à ton appli, tu peux lui spécifier en dernier paramètre le thread associé à la procédure de crochetage, en utilisant GetCurrentThreadId (au lieu de 0 dans ton cas)

    sinon, une autre solution est de faire vérifier à ton hook si le nom du processus associé au thread attaché contient bien le nom de ton process (avec GetModuleFileName), et agir uniquement dans ce cas

Discussions similaires

  1. [VB.NET] API hook clavier
    Par Torkan dans le forum Windows Forms
    Réponses: 15
    Dernier message: 05/05/2006, 03h01
  2. hook clavier
    Par bou3 dans le forum Windows
    Réponses: 5
    Dernier message: 14/06/2005, 17h12
  3. Hook Clavier et changement de touche
    Par Fly_57 dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 09/08/2004, 19h42
  4. [Hook] Clavier Microsoft office keyboard
    Par merzhin dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 01/06/2004, 13h59

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