Partage
  • Partager sur Facebook
  • Partager sur Twitter

[debutant] event java sans focus

Sujet résolu
    24 juillet 2016 à 10:02:03

    Bonjour,

    Mon problème est de réussir à faire tourner ma fenêtre en arrière plan et que celle-ci récupère les évènement clavier et curseur. Cependant, je doit avouez que lorsqu'un forum aborde se sujet, je suis assez vite perdu et n'arrive pas à utiliser le code présenter (ni être sur à 100% que c'est ce que je recherche). Mon code n'est pour le moment rien d'autre que JFrame basique qui fonctionne.

    Merci d'avance pour vos réponses :)

    -
    Edité par OphisDeus 29 juillet 2016 à 18:15:17

    • Partager sur Facebook
    • Partager sur Twitter
      7 août 2016 à 16:15:59

      Hello, 

      déjà si tu ne trouves pas beaucoup de doc à ce sujet, c'est parsqu'un des seuls intérêts de faire ce que tu demandes c'est pour faire un keylogger. En plus d'être illégal (et un peut démodé :D), JAVA n'est pas du tout le bon langage pour faire un tel soft.

      Sinon, Java étant exécuté sur une machine virtuelle (JVM), tu ne peut écouter que les événements de la JVM (en gros, que ce qui se passe sur ta JFrame).

      Pour pouvoir écouter tous les événements, tu dois écouter hors de la JVM. Le seul moyen de faire ça c'est d'utiliser une API qui te permet de faire des appels système - je te laisse chercher sur google - , et donc de pouvoir manipuler directement les fenêtres windows (par exemple).  

      Mais ça deviens vite assez compliqué, et pas forcement accessible aux débutant.

      Bye :) 

      -
      Edité par arno21 7 août 2016 à 16:18:10

      • Partager sur Facebook
      • Partager sur Twitter

      Mon projet: SpotRoom. N'hésites pas à passer dire ce que tu en penses !

        21 août 2016 à 21:13:11

        Merci pour ta réponse (je ne répond que maintenant j'ai passé 3,5 semaines sans internet),

        Mon objectif n'était pas de faire un keylogger mais de rajouter quelques raccourcies clavier pour m'amuser (bien qu'un keylogger ça doit aussi être drôle :D).

        J'ai effectué des recherche suite à ta reponse et tadaaaa :magicien:

        Une librairies java permet d'obtenir les events sans le focus : JNativeHook

        https://github.com/kwhat/jnativehook/

        Je la recommande étant donné qu'elle marche pour les événements clavier et souris (mouvement et clique) et qu'un bon nombre d'exemple son donné afin de faciliter son utilisation. Cette bibliothèque semble cependant posséder un défaut, il faut une JFrame (je n'en suis pas sur mais vu qu'elle fonctionne avec des Listeners je crois que c'est obliger).

        -
        Edité par OphisDeus 22 août 2016 à 14:35:43

        • Partager sur Facebook
        • Partager sur Twitter
          22 août 2016 à 19:07:51

          Re !

          Non JavaNativeHook se base sur l'API JNI (celle dont je parlais quand je te disais de chercher sur google :D). Elle fait directement des appels système, pas besoin de JFrame.

          Mais on arrive vite dans ce que je disais : Meme si tu as trouvé une API qui manipule JNI pour toi, tu risques d'être vite short en connaissances pour débugger le soft quand  tu sortiras des cas d'exemple de la lib.

          Mais c'est toujours cool de commencer par du niveau intermédiaire en tant que débutant, je ne peux que t'encourager !

          bye :) 

          EDIT : Si tu regardes les commentaires de la classe GlobalScreen.java :

          /* 
          * GlobalScreen is used to represent the native screen area that Java does not
           * usually have access to. This class can be thought of as the source component
           * for native input events.
          **/


           

          -
          Edité par arno21 22 août 2016 à 19:09:22

          • Partager sur Facebook
          • Partager sur Twitter

          Mon projet: SpotRoom. N'hésites pas à passer dire ce que tu en penses !

            26 août 2016 à 17:12:00

            bon bah j'avais pas tout compris :-°

            Merci pour ces informations supplémentaires.

            • Partager sur Facebook
            • Partager sur Twitter

            [debutant] event java sans focus

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown