Bonjour
Voila mon "Program.cs"
Il vérifie que le Process n'existe pas déjà et si c'est le cas donne la main sur celui existant.
Ca fonctionne bien quand le programme est ouvert et caché derrière d'autres fenêtre.
Mon problème c'est si la fenêtre est réduite en barre des tache ou dans le systray ça ne l'ouvre pas en plein ecran.
Es ce possible ?
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using System;
using System.Windows.Forms;
using System.Diagnostics;
using System.Runtime.InteropServices;
 
namespace WindowsFormsApplication1
{
    static class Program
    {
        [DllImport("user32")]
        static extern bool SetForegroundWindow(IntPtr windowHandle);
 
        /// <summary>
        /// Point d'entrée principal de l'application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            bool firststart = true;
            int i = 0;
            Process Proc_EnCours = Process.GetCurrentProcess(); //Info sur lui même
            Process[] Les_Proc = Process.GetProcesses(); //Liste de tous les Process en cours
            foreach (Process Processus in Les_Proc) //Pour chaque Process
            {
                if (Proc_EnCours.ProcessName == Processus.ProcessName && Proc_EnCours.Id != Processus.Id) //Vérifie si même nom et pas lui même
                {
                    SetForegroundWindow(Les_Proc[i].MainWindowHandle); //Donne la main sur le Process déjà existant
                    firststart = false;
                    break; //Sort de la boucle
                }
                i++;
            }
            if (firststart == true)
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
        }
    }
}
Merci