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 :

[C#] Gestion évenements clavier


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 111
    Points : 65
    Points
    65
    Par défaut [C#] Gestion évenements clavier
    Bonjour !

    J'aimerais récupérer les évenements de touches enfoncées sur le clavier, mais pas ceux uniquement liés à la form lorsqu'elle est active.

    Je m'explique : pour le moment, j'arrive à récupérer la touche du clavier enfoncée, mais uniquement lorsqu'on se trouve sur la form (fenêtre active donc). J'ai ceci comme code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void keyPress(object sender, KeyPressEventArgs e)
    {
        textBox.Text += e.KeyChar;
    }

    J'aimerais faire un programme (qui ne travaille pas sur une form) et qui récupère chaque évenement lié à l'appui d'une touche du clavier (même lorsqu'on tappe sous Word par exemple, ou tout autre programme). Ces informations seront stockées dans un fichier.

    Quelqu'un pourrait m'éclairer sur la façon de procéder ? J'ai une petite idée (associer un écouteur d'évenements au clavier, et détecter chaque évenement lié à l'appui d'une touche) mais un petit bout de code m'aiderait beaucoup !

    Merci d'avance

  2. #2
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut
    Lut,

    Un KeyLogger en clair on doit pouvoir avec VisualCSharp
    permettre de laisser le form actif mais en arriere plan, non ?!


    ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 111
    Points : 65
    Points
    65
    Par défaut
    Oui c'est ça : un key logger !

    Comment fait-on pour laisser le form actif en background ? Je n'ai pas trouvé...

    Y a-t-il un moyen sans passer par 1 form ?

    Merci !

  4. #4
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut
    ...


    Bien pour tout te dire je n'ai pas trouvé non plus en fait, je sais pas je débute un peu dans la matière en fait. Mais je pense quand même qu'il doit ya avoir moyen, si on lui applique à son évènement de Leave du Focus de lui remettre, tu suit ?! Et de l'enlever de la barre des tâches ça c'est faisable et de la réduire à son démarrage également, donc invisible mais peut être pas active à part de réussir de lui faire mon petit Algo


    ...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 111
    Points : 65
    Points
    65
    Par défaut
    Le concept de la cacher dans la barre des tâches est intéressant, finalement ça résoud mon problème "sans passer par un form". Etant donné qu'on ne le voit pas, le problème ne se pose plus !

    J'ai essayé en faisant en sorte que la form soit minimizée dès le lancement, mais le problème : tant que la form n'est pas active (à l'écran), aucun évenement lié aux touches ne se déclenche...

    L'idée de l'évenement "leave" sur le form ne marche pas vraiment car il ne se déclenche qu'une seule fois et ma méthode pour récupérer mes évenements clavier est liée au form lui même.

    Je pense en fait que je ne dois pas passer par un évenement pré-programmé pour un form, mais de créer tout ça moi même :s

    Mais comment ?


    Merci pour ton aide en tout cas

  6. #6
    Membre confirmé
    Avatar de frechy
    Inscrit en
    Novembre 2004
    Messages
    343
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 343
    Points : 511
    Points
    511
    Par défaut
    Le plus simple, je pense est de mettre l'opacité à 0% et ShowInTaskBar à false.

    Puis dans ton pgm tu peux regarder si une suite de caractère est tappé pour l'afficher à nouveau 8)

  7. #7
    Membre confirmé
    Avatar de frechy
    Inscrit en
    Novembre 2004
    Messages
    343
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 343
    Points : 511
    Points
    511
    Par défaut
    En fait je viens d'y penser...ca risque de pas aller vu que dès que tu ne seras plus dans la form il ne lancea plus les events.

    Par contre tu peux garder mes 2 idées avec en complément ceci: Processing Global Mouse and Keyboard Hooks in C#

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 111
    Points : 65
    Points
    65
    Par défaut
    Bonjour !

    J'ai trouvé un bon exemple sur le site codeproject, dont je me suis inspiré...

    Merci pour votre aide

  9. #9
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    je commence aussi a travaillé sur un "key logger",
    mais sur delphi j'ai trouvé des infos ici:

    http://tcharles.developpez.com/simul/

    je compte utiliser aussi la faq pour rendre invisible l'appli.

    je suis donc aussi interessé pour tout autre info.
    merci.

  10. #10
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Cela se fait avec l'api Win32 SetWindowsHookEx
    Bon courage

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

Discussions similaires

  1. gestion d'évenement (clavier)
    Par jamxla dans le forum Windows Forms
    Réponses: 2
    Dernier message: 15/03/2008, 20h41
  2. Gestion du clavier
    Par Ekinoks dans le forum OpenGL
    Réponses: 12
    Dernier message: 22/08/2005, 14h36
  3. Réponses: 8
    Dernier message: 12/05/2005, 08h16
  4. gestion du Clavier
    Par benthebest dans le forum MFC
    Réponses: 13
    Dernier message: 07/05/2005, 22h39
  5. [MX]Optimisation de la gestion du clavier
    Par yacinechaouche dans le forum Flash
    Réponses: 8
    Dernier message: 18/04/2004, 02h13

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