Question

J'ai écrit une petite application WPF que lorsque « fermé » réduit dans la barre d'état système (exigence de client). Un double-clic, il revient en position, ou un clic droit donne un menu contextuel pour quitter.

Mais si l'application est réduite au minimum, et les utilisateurs à naviguer Démarrer-> Tous les programmes-> L'application démarre une nouvelle instance.

Qu'est-ce que (en C #) dois-je faire pour obtenir l'application pour maximiser l'instance en cours d'exécution si l'utilisateur le fait plutôt que de tirer une nouvelle instance?

Merci!

Était-ce utile?

La solution

répondre de Jon Skeet traite de l'utilisation d'un mutex pour le faire

  

Mutex est la voie à suivre. C'est beaucoup   moins fragile que d'utiliser des noms de processus   etc.

     

Cependant, vous devez vous assurer que la   Mutex ne sont pas des déchets collectés. dans le   cas d'un service (qui est l'événement   entraînée plutôt que d'avoir une « main »   procédé qui se déroule à la fin), le   moyen le plus judicieux de le faire est   probablement mettre dans une statique   variable.

     

Eliminer le mutex lorsque le service   arrêts, de sorte que vous n'avez pas besoin d'attendre   finalisation ou quelque chose comme ça.

Matthieu Brindley donne cet exemple dans la même question pour son réponse

[STAThread]
static void Main() 
{
   using(Mutex mutex = new Mutex(false, "Global\\" + appGuid))
   {
      if(!mutex.WaitOne(0, false))
      {
         MessageBox.Show("Instance already running");
         return;
      }

      Application.Run(new Form1());
   }
}

Afin de maximiser l'autre application, vous devrez envoyer le message à maximiser. Voir cet article sur envoi

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top