C# 禁止windows程序重復運行的兩種基本方法


一般有兩種方法,我是用的是第一種

方法1:

在項目的第一個窗體的啟動事件中 如form1_load() 中添加如下語句


#region 判斷系統是否已啟動

            System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcessesByName("這里是你的程序進程名");//獲取指定的進程名  
            if (myProcesses.Length > 1) //如果可以獲取到知道的進程名則說明已經啟動
            {
                MessageBox.Show("程序已啟動!");
                Application.Exit();              //關閉系統
            }
         

#endregion


===================================================================================
好了 這樣就可以達到防止用戶第二次啟動此程序的目的了
當然你也可以把它編輯成一個類 或生成一個dll文件 調用它。


方法2.

在項目的啟動引導文件 Program.cs中加入判斷語句

using System.Linq;
using System.Windows.Forms;

namespace XiaoZhiSoft
{
    static class Program
    {
        /// <summary>
        /// 應用程序的主入口點。
        /// </summary>
        [STAThread]
        static void Main()
        {
            bool isRuned;
            System.Threading.Mutex mutex = new System.Threading.Mutex(true, "OnlyRunOneInstance", out isRuned);
            if (isRuned)
            {

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
                mutex.ReleaseMutex();
            }
            else
            {
                MessageBox.Show("程序已啟動!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM