winform程式打包後 只能執行一個

費勁_奮進發表於2014-04-30

  static class Program
    {
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        ///process提供對本地和遠端程式的訪問並使您能夠啟動和停止本地系統程式
        public static Process GetRunningInstance()
        {
            Process currentProcess = Process.GetCurrentProcess(); //獲取當前程式
            //獲取當前執行程式完全限定名
            string currentFileName = currentProcess.MainModule.FileName;
            //獲取程式名為ProcessName的Process陣列。
            Process[] processes = Process.GetProcessesByName(currentProcess.ProcessName);
            //遍歷有相同程式名稱正在執行的程式
            foreach (Process process in processes)
            {
                if (process.MainModule.FileName == currentFileName)
                {
                    if (process.Id != currentProcess.Id) //根據程式ID排除當前程式
                        return process;//返回已執行的程式例項
                }
            }
            return null;
        }
        //private System.Windows.Forms.PropertyGrid OptionsPropertyGrid;
        //public OptionsDialog()
        //{
        //    OptionsPropertyGrid=new PropertyGrid();
        //    OptionsPropertyGrid.Size=new System.Drawing.Size(300,250);
        //    this.Controls.Add(OptionsPropertyGrid);
        //    this.Text="選項對話方塊";
        //}
        /// <summary>
        /// 應用程式的主入口點。
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                Process p = GetRunningInstance();
                if (p != null)
                {
                    MessageBox.Show("應用程式已經執行");
                }
                else
                {
                    Application.EnableVisualStyles();
                    Application.SetCompatibleTextRenderingDefault(false);
                    Application.Run(new time());
                }
            }

        }
    }

相關文章