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

Langage Java Discussion :

Détecter si une fenêtre spécifique a le focus


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 19
    Par défaut Détecter si une fenêtre spécifique a le focus
    Bonjour à tous,

    J'ai une demande toute particulière qu'il me faudrait résoudre dans exactement "il y a une semaine". Le problème est le suivant :

    Je suis en train de créer un logiciel qui doit détecter si un programme spécifique ( dans mon test : "Calc.exe") possède le focus. Si ce programme perd le focus, je dois activer un petit timer qui s'arrête des que "calc.exe" récupère le focus.

    L'un de vous aurait-il une solution ou ne serait-ce qu'une piste à me proposer, s'il vous plait?

    La chose semble pourtant bête : on dit au programme : "Surveilles le focus de ce programme là -> calc.exe, et démarre le compteur dès qu'il le perd."

    J'ai cherché dans la doc java, sur google, mon copain, mais entre deux sites parlant de javascript, je ne trouve que des sites parlant de VB.NET. Hors, moi, javascript, c'est pas le langage que je DOIS utiliser et VB.NET m'est aussi familié que la fusion nucléaire de particules de Unundium dans un champ de stase électromagnétique...

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 19
    Par défaut
    Personne ne sait comment faire? je suis certains qu'il y a un moyen, mais je ne le connais pas. Et Java a pour habitude d'être vaste.

    Je vous en prie, s'il vous plait, connaitriez-vous une manière de faire en sorte de détecter ce malheureux focus?

  3. #3
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 098
    Par défaut
    Je ne pense pas que ca soit possible de faire cela en java sans passer par une dll ou des fonctions systèmes.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 19
    Par défaut
    Voilà qui est facheux. Un ami m'a proposé de passer par un écouteur de process. Mais savoir qu'un processus tourne ne veut pas dire qu'il a le focus..

    Si éventuellement quelqu'un connait une dll ou une fonction système qui permette de faire ça, se serait super!

    J'ai aussi trouvé sur un forum quelque chose nommé JNI. Je ne sais pas encore ce que c'est, mais je vais aller voir. Qui sait? Peut-être que la solution est là.
    A la limite, j'estime possible de rajouter une couche d'un autre langage. Mais là, je dois dire que je ne m'y connais pas trop. Apparemment, comme je l'écrivais plus haut, il y aurait moyen de faire ça en VB.NET ou javascript. Mais niveau croisement langage, je m'arrête à java/BDD et C/C++ comme croisement. Là, croiser java/javascript ou java/VB.NET, je ne sais pas trop comment faire.

    Je vais me renseigner sur ça, au pire. En attendant, si quelqu'un possède la moindre piste sur comment savoir qu'un programme a le focus, s'il vous plait, n'hésitez pas. Il ne me reste qu'un mois de dev et je vois les jours fondre comme beurre dans une poêle chaude.

    Merci de m'aider, Wax78. Ce projet est assez colossal et sans aide, je risque de me prendre les deadlines en pleine face.

  5. #5
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 098
    Par défaut
    Citation Envoyé par Cdébryha Voir le message
    Mais savoir qu'un processus tourne ne veut pas dire qu'il a le focus..
    A savoir en plus qu'un processus n'as pas toujours d'interface.

    Il n'y as pas que JNI il y'a JNA aussi et google regorge de questions similaires a la tienne avec parfois des réponses.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 19
    Par défaut
    "A savoir en plus qu'un processus n'as pas toujours d'interface."

    Tu as bien raison. Mais il est vrai que je ne prenais pas cette idée en compte car le logiciel que je cherche à analyser a une interface.

    "google regorge de questions similaires a la tienne "

    Vraiment? Me voila surpris. J'ai pourtant cru être l'un des seuls à poser la question ( quoiqu'au fond je pensais aussi ne pas être le seul), et les réponses que j'avais concernaient surtout le javascript ou le VB.NET, mais je n'en ai trouvé aucune sur le java.

    Je ne connais ni JNI ni JNA. Je vais aller voir ce que c'est.

    Auriez-vous un lien ou deux à me donner pour que je puisse voir, dans l'éventualité où je ne trouve pas, s'il vous plait? Je vous remercie d'avance.

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

Discussions similaires

  1. détecter si une fenètre est ouverte et si oui la fermer
    Par malabarbe dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 29/02/2008, 11h36
  2. [JTable] Détecter qu'une case a obtenu le focus
    Par nicou_doude dans le forum Composants
    Réponses: 2
    Dernier message: 24/01/2008, 10h03
  3. Ouverture d'une url dans une fenêtre spécifique
    Par jpbourgeois dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/09/2006, 22h54
  4. Détecter si une fenêtre est déjà ouverte et aller dedans
    Par thierry198 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/11/2005, 17h53
  5. empêcher une fenêtre de perdre le focus (MDI)
    Par eponette dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/08/2005, 16h17

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