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

Python Discussion :

Communiquer avec python sans le focus


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de luclucdu38
    Homme Profil pro
    autre
    Inscrit en
    Avril 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Avril 2015
    Messages : 33
    Par défaut Communiquer avec python sans le focus
    Bonmatin Bonjour Bonsoir,

    je suis en train de créer des macros (Une macro est un terme générique pour désigner un moyen de mémoriser un enchaînement de tâches au sein d’un logiciel).
    Après avoir choisi mon macro, celui-ci tournera en boucle pendant une durée donné. Le macro tourne avec la fenêtre qu'il traite en avant, celle-ci a donc le focus.

    Si je reviens a mon ordinateur et veux stopper mon programme, il me faudrait appuyer sur le touche "s" par exemple pour dire "stop".

    Le seul moyen que je connaisse pour que python détecte un événement clavier est avec une fenêtre Tkinter et le fameux "bind". Ça tombe bien, mon programme utilise justement une fenêtre tkinter. Or cette technique ne marche uniquement que si la fenêtre tkinter a le focus.

    Mais le problème, c'est que puisque ce programme lance un macro qui clic sur d'autres pages mises en plein écran devant la fenêtre tkinter, ce dernier n'a plus le focus et ne détecte pas mon appuie sur le"s" pour s’arrêter.
    Existe-t-il une alternative ?

    merci d'avance à vos idées / réponses, je débute

  2. #2
    Membre averti Avatar de luclucdu38
    Homme Profil pro
    autre
    Inscrit en
    Avril 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Avril 2015
    Messages : 33
    Par défaut
    Je suis aller voir du coté de pygame mais je n'arrive même pas à utiliser les fonctions comme il se doit :

    pygame.key.get_pressed() --> me retourne toujours une liste de 0
    pygame.key.get_focused() --> me retourne toujours un 1
    pygame.event.get() --> me retourne toujours un liste vide

    et ce, que j'appui ou non sur une touche...

  3. #3
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Citation Envoyé par luclucdu38 Voir le message
    Après avoir choisi mon macro, celui-ci tournera en boucle pendant une durée donné. Le macro tourne avec la fenêtre qu'il traite en avant, celle-ci a donc le focus.

    C'est dans cette fenêtre que tu dois mettre un bouton Stop, comme tu peux le voir dans toutes autres applications lors de tâches longues.

  4. #4
    Membre averti Avatar de luclucdu38
    Homme Profil pro
    autre
    Inscrit en
    Avril 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Avril 2015
    Messages : 33
    Par défaut
    C'est a dire, mettre sur stop cette fenetre ?
    Je dois fermer cette fenetre de jeu pour redonner a ma fenetre tkinter le focus comme ça je peux stoper le macro !?

    N'existe-t-il pas une autre alternative ?

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Ce n'est pas ce que j'ai dit.

    Sur ta fenêtre de dialogue dans laquelle la macro s'exécute tu dois placer un bouton "Stop".

    Lorsque tu transfères un paquet de fichiers de ta clé USB ou que tu graves un disque ou que ... etc, tu as bien une possibilité d'interrompre l'opération, non ? C'est de cela que je parle.


    Pour info, si ta macro utilise un process non Python, avec subprocess par exemple, il faudra relever l'ID du process et faire un kill dessus.

  6. #6
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    pour le dire simplement, imaginons qu'en appuyant sur la touche 's' tu stoppes ton programme python qui n'a pas le focus
    oui sauf que le focus, c'est une autre fenêtre qui l'a, dans cette fenêtre un programme tourne et quand on appuie sur 's' ça sauvegarde le document, ou bien ça quitte l'application, ou encore ça lance Tux Racer, quelle action doit-on prendre ? donner la priorité à ton programme qui n'a pas le focus ou à la fenêtre qui a le focus quand on appuie sur la touche ?

    en admettant que ce que tu veux faire soit techniquement faisable (mais j'ai quand même un gros doute) c'est une mauvaise idée de le faire.

  7. #7
    Membre averti Avatar de luclucdu38
    Homme Profil pro
    autre
    Inscrit en
    Avril 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Avril 2015
    Messages : 33
    Par défaut
    Justement, c'est ça le problème :
    La fenetre tkinter dans laquelle s'execute le macro et justement en arriere plan, la fenetre qui a le focus est une fenetre de jeu windows qui n'a rien a voir avec python ou tkinter.

Discussions similaires

  1. python communique avec eclipse
    Par jrad31 dans le forum Général Python
    Réponses: 2
    Dernier message: 24/02/2014, 13h42
  2. Communiquer avec la BDD sans liaison
    Par Sergeras dans le forum HyperFileSQL
    Réponses: 13
    Dernier message: 22/07/2011, 12h23
  3. Traitement d'image avec Python sans modules
    Par kevgen dans le forum Général Python
    Réponses: 4
    Dernier message: 23/11/2010, 00h02
  4. Courbe avec python sans pylab
    Par anthonystaltaro dans le forum Général Python
    Réponses: 4
    Dernier message: 06/05/2009, 13h00
  5. Réponses: 2
    Dernier message: 30/06/2006, 14h20

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