コード例 #1
0
        static void Main(string[] args)
        {
            #region One Process
            Process   current    = Process.GetCurrentProcess();
            Process[] Processess = Process.GetProcessesByName(current.ProcessName);
            for (int i = 0; i < Processess.Length; i++)
            {
                Process process = Processess[i];
                if (process.ProcessName == current.ProcessName && process.Id != current.Id)
                {
                    NativeMethods.SetForegroundWindow(process.MainWindowHandle);
                    NativeMethods.ShowWindow(process.MainWindowHandle, 9);//9
                    Application.Exit();
                    Environment.Exit(0);
                    return;
                }
            }
            #endregion

            Vars.CreateStartup();

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            mainMenu = new MainMenu()
            {
                AutoStartup = args.Length > 0
            };

            var worker = new BackgroundWorker();
            worker.DoWork             += new DoWorkEventHandler(Worker_DoWork);
            worker.RunWorkerCompleted += Worker_RunWorkerCompleted;
            worker.RunWorkerAsync();

            Application.Run(mainMenu);
        }