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 :

Instance d'une application


Sujet :

Windows Forms

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2005
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 61
    Par défaut Instance d'une application
    Bonjour,

    Mon application affiche des fiches individus en utilisant une historisation.
    Elle est lancée par une page HTML avec les paramètres d'un individu.

    La première fois que je clique sur le lien HTML çà me lance bien l'application avec la bonne fiche individu.

    Ce que je voudrais, c'est quand je clique sur un autre lien HTML çà ne lance pas une autre instance de mon application mais que çà utilise celle déjà lancée et que çà historise la nouvelle fiche individu dans mon application.

    Est ce possible ?

    J'espère avoir été assez clair.
    Merci d'avance pour vos informations.

    Christian

  2. #2
    Membre éclairé
    Homme Profil pro
    DBA - Développeur BI
    Inscrit en
    Avril 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : DBA - Développeur BI
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2003
    Messages : 442
    Par défaut
    Une classe singleton peut-être?

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Herlece Voir le message
    Une classe singleton peut-être?
    non, parce qu'un singleton est unique seulement au sein d'une même instance d'application

    En général pour faire ça on utilise un Mutex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    static void Main(string[] args)
    {
        using (Mutex mutex = new Mutex(false, "un_nom_unique_pour_le_mutex"))
        {
            if (mutex.WaitOne(0))
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
            else
            {
                MessageBox.Show("L'application est déjà lancée");
            }
        }
    }

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2005
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 61
    Par défaut
    Merci Herlece et tomlev pour vos infos.

    Le cas du Singleton, j'avais testé.

    Pour le cas du Mutex, j'avais trouvé mais je voudrais en plus savoir comment récupérer l'instance de l'application déjà lancée afin d'y reprendre la main dessus ?

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Le code qui accompagne cet article fait justement ça
    Il cherche un process qui a le même nom, récupère sa fenêtre principale, et l'active
    Par contre, si tu veux passer à l'instance existante les paramètres reçus par la nouvelle instance, c'est un peu plus compliqué... je ne vois pas vraiment de moyen simple de le faire

    Sinon, cet article semble assez intéressant aussi, j'ai pas encore tout lu (va directement à la 2e question, la 1e n'a rien à voir)

    EDIT: OK, en fait le 2e article donne une solution super simple au problème, tu n'as même plus à te préoccuper des Mutex et de la communication interprocess... je bookmark

  6. #6
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2005
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 61
    Par défaut
    J'ai regardé ton article mais je n'arrive pas à avoir les mêmes propriétés de l'application.
    Pour ma part j'ai Visual Studio 2005.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par VILPELLET Voir le message
    Pour ma part j'ai Visual Studio 2005.
    Moi aussi
    J'ai testé avec le code des figures 4 et 5 dans l'article, et ça marche nickel

  8. #8
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2005
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 61
    Par défaut
    Merci tomlev.
    J'ai testé l'exemple founi dans l'article.
    Cà marche à merveille.

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

Discussions similaires

  1. récupérer l'instance d'une application
    Par skywaukers dans le forum Langage
    Réponses: 7
    Dernier message: 15/09/2008, 22h54
  2. communication entre 2 instances d'une application access
    Par funkyjul dans le forum VBA Access
    Réponses: 11
    Dernier message: 11/04/2008, 07h23
  3. instance globale à une application
    Par nico_4802 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 09/11/2007, 09h44
  4. comment l'instance d'une application est reperée sous Windows
    Par Chatbour dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 14/07/2007, 12h48
  5. Réponses: 5
    Dernier message: 22/09/2005, 10h15

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