2010-02-02 3 views
2

J'utilise process.info, process start(); Pour appeler un exe sur un bouton, cliquez sur C# .net, mais chaque fois que je clique sur le bouton, il appelle un exe et ouvre un fichier en double dans la barre des tâches. Je veux juste maximiser l'exe qui était déjà dans la barre des tâches.procédure pour appeler un exe une seule fois

Je suis confronté au problème que c'est encore et encore l'ouverture du même fichier sur le bouton clic. Existe-t-il un moyen d'ouvrir un exe une seule fois et, en cliquant sur le bouton, il pourrait maximiser le fichier exe s'il est déjà ouvert plutôt que de faire des doublons?

Répondre

1

Process.Start() retourne un objet Process. Ce que vous pouvez faire est d'avoir une variable de classe (par exemple Process startedProcess;) qui est initialisée lorsque le bouton est cliqué. Si cette variable est nulle cela signifie que le processus n'a pas encore démarré, et que cette application devrait être lancée, sinon elle est déjà en cours d'exécution, et nous devrions l'ignorer.

Voici un exemple de base:

Process startedProcess = null; 

public void button1_Clicked(object sender, EventArgs e) 
{ 

    if (startedProcess == null) 
      startedProcess = Process.Start("path\\to\\process.exe"); 

} 

Si vous cherchez à passer automatiquement à cette fenêtre dans le cas où l'application est déjà en cours d'exécution, .NET n'a pas construit des méthodes pour ce faire nativement . Vous aurez besoin de DLLImports de user32.dll. Un exemple peut être trouvé dans les commentaires sur cette page: http://www.eggheadcafe.com/community/aspnet/14/21984/switch-to-another-runnin.aspx

Questions connexes