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 :

Une seul instance d'une appli multidocuments


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 36
    Par défaut Une seul instance d'une appli multidocuments
    Bonjour

    J'ai une application (python 2.7 + wxpython 3), multi documents (AuiMDIParentFrame), et j'aimerais qu'elle fonctionne comme la plupart des applications multi documents :
    - une seule instance lancée à la fois
    - si on double-clic sur un fichier document de cette application, il s'ouvre dans l'instance déjà lancée.

    En réalité, j'ai déjà fait un truc qui marche en suivant cette méthode : http://stackoverflow.com/questions/5...ssing-commands
    Mais il y a pas mal d'inconvénients :
    - demande de franchissement du pare-feu (Windows) au premier lancement (ça rebute un peu les utilisateurs)
    - après une mise en veille prolongée, l'instance déjà lancée est "oubliée" ... et une deuxième s'ouvre.

    Est-ce que quelqu'un aurait une autre méthode ?
    Merci d'avance !

  2. #2
    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,

    je pense qu'une méthode quik 'n dirty pourrait consister à maintenir un descripteur de fichier -temporaire, un lockfile- ouvert en écriture, étant donné que l'écriture concurrente est en général interdite par la plupart des systèmes, mais il y a peut-être plus pro/efficace

  3. #3
    Membre éclairé
    Homme Profil pro
    Amateur
    Inscrit en
    Juin 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Amateur
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2015
    Messages : 52
    Par défaut
    Bonjour,

    J'ai pas testé, mais peut-être que wx.SingleInstanceChecker pourrait t'être utile dans ce cas là. J'avais aussi trouvé ces réponses sur StackOverflow plutôt intéressantes. La dernière fait de nouveau référence à wx.SingleInstanceChecker

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 36
    Par défaut
    Bonjour

    Citation Envoyé par Dan737 Voir le message
    J'ai pas testé, mais peut-être que wx.SingleInstanceChecker pourrait t'être utile dans ce cas là. J'avais aussi trouvé ces réponses sur StackOverflow plutôt intéressantes. La dernière fait de nouveau référence à wx.SingleInstanceChecker
    Merci aussi pour cette piste, mais j'avais déjà vu ça ... et je répondrais comme à BufferBob : comment ordonner à l'instance de l'application déjà lancée d'ouvrir un document (dont le chemin se trouve dans les arguments passés à la deuxième instance : sys.argv[1]) ?

    Mais merci !

  5. #5
    Membre éclairé
    Homme Profil pro
    Amateur
    Inscrit en
    Juin 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Amateur
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2015
    Messages : 52
    Par défaut
    En effet... Comme trouvé ici https://groups.google.com/forum/#!se...U/xKV46pSf95sJ il te faudra un moyen de communiqué avec l'application déjà ouverte.

    Une piste serait peut-être psutil

  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
    Citation Envoyé par Dan737 Voir le message
    il te faudra un moyen de communiqué avec l'application déjà ouverte.
    +1, les tubes nommés (dispos à travers le module win32pipe à priori) sont probablement les plus intéressants, ça fonctionne comme une socket (client, serveur, connect, disconnect) mais à travers un fichier, un peu comme les socket unix finalement, donc ça ne lèvera pas d'exception firewall

    Une piste serait peut-être psutil
    -1, ça sert pas vraiment à ça psutil, ce serait plutôt du monitoring/relevé d'informations genre consommation disque, cpu, mémoire etc.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 36
    Par défaut
    Bonjour
    Et merci pour la réponse.

    Citation Envoyé par BufferBob Voir le message
    je pense qu'une méthode quik 'n dirty pourrait consister à maintenir un descripteur de fichier -temporaire, un lockfile- ouvert en écriture, étant donné que l'écriture concurrente est en général interdite par la plupart des systèmes, mais il y a peut-être plus pro/efficace
    Je n'ai rien contre le quik 'n dirty que je pratique tous les jours.
    Je vois bien comment un fichier temporaire peut permettre à une nouvelle instance de détecter qu'il y en a une autre qui est lancée, mais pas comment ordonner à la première d'ouvrir un fichier document ...

Discussions similaires

  1. [FAQ] une seule instance de mon appli avec Mutex
    Par kacedda dans le forum MFC
    Réponses: 2
    Dernier message: 26/11/2008, 09h44
  2. lancer une seule instance d'une classe
    Par Axiome dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/09/2008, 16h24
  3. Une seule instance de l'appli et exécuter une procédure
    Par Manic dans le forum API, COM et SDKs
    Réponses: 11
    Dernier message: 08/03/2006, 11h52
  4. Réponses: 11
    Dernier message: 06/12/2005, 08h23

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