天天看點

在.net中 每次隻能打開一個WinForm應用程式

使用程序列舉的方式,實作單個執行個體的WinForm

在.net中 每次隻能打開一個WinForm應用程式

 [STAThread]

在.net中 每次隻能打開一個WinForm應用程式

         static   void  Main()

在.net中 每次隻能打開一個WinForm應用程式
在.net中 每次隻能打開一個WinForm應用程式

         ... {

在.net中 每次隻能打開一個WinForm應用程式
在.net中 每次隻能打開一個WinForm應用程式

            Application.EnableVisualStyles();

在.net中 每次隻能打開一個WinForm應用程式

            Application.SetCompatibleTextRenderingDefault(false);

在.net中 每次隻能打開一個WinForm應用程式

            //在這裡可以修改為需要的程序名稱。

在.net中 每次隻能打開一個WinForm應用程式

            if (!HasInstance("SingleInstance"))

在.net中 每次隻能打開一個WinForm應用程式
在.net中 每次隻能打開一個WinForm應用程式

            ...{

在.net中 每次隻能打開一個WinForm應用程式

                Application.Run(new Form1());

在.net中 每次隻能打開一個WinForm應用程式

            }

在.net中 每次隻能打開一個WinForm應用程式

            else

在.net中 每次隻能打開一個WinForm應用程式
在.net中 每次隻能打開一個WinForm應用程式

            ...{

在.net中 每次隻能打開一個WinForm應用程式

                MessageBox.Show("Exist one Instance");

在.net中 每次隻能打開一個WinForm應用程式

                Application.Exit();

在.net中 每次隻能打開一個WinForm應用程式

            }

在.net中 每次隻能打開一個WinForm應用程式

        }

在.net中 每次隻能打開一個WinForm應用程式

         // 使用程序列舉,看看是否已經存在相同名稱的程序

在.net中 每次隻能打開一個WinForm應用程式

         private   static   bool  HasInstance( string  name)

在.net中 每次隻能打開一個WinForm應用程式
在.net中 每次隻能打開一個WinForm應用程式

         ... {

在.net中 每次隻能打開一個WinForm應用程式

            Process[] prces = Process.GetProcesses();

在.net中 每次隻能打開一個WinForm應用程式

            int count = 0;           

在.net中 每次隻能打開一個WinForm應用程式

            foreach (Process pro in prces)

在.net中 每次隻能打開一個WinForm應用程式
在.net中 每次隻能打開一個WinForm應用程式

            ...{

在.net中 每次隻能打開一個WinForm應用程式

                if(pro.ProcessName==name)

在.net中 每次隻能打開一個WinForm應用程式
在.net中 每次隻能打開一個WinForm應用程式

                ...{

在.net中 每次隻能打開一個WinForm應用程式

                    count++;

在.net中 每次隻能打開一個WinForm應用程式

                }

在.net中 每次隻能打開一個WinForm應用程式

            }

在.net中 每次隻能打開一個WinForm應用程式

            if(count>1)

在.net中 每次隻能打開一個WinForm應用程式

                return true;

在.net中 每次隻能打開一個WinForm應用程式

            else

在.net中 每次隻能打開一個WinForm應用程式

                return false;

在.net中 每次隻能打開一個WinForm應用程式

        }