C#实现让程序只能打开一个实例(总结3方法)
生活随笔
收集整理的這篇文章主要介紹了
C#实现让程序只能打开一个实例(总结3方法)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
代碼:
? ?? ?? ?? ?? ?? ?? ?? ?//=====創建互斥體法:=====? ?? ?? ?? ?//bool blnIsRunning;
? ?? ?? ?? ?//Mutex mutexApp = new Mutex(false, Assembly.GetExecutingAssembly().FullName, out? ?blnIsRunning);
? ?? ?? ?? ?//if (!blnIsRunning)
? ?? ?? ?? ?//{
? ?? ?? ?? ?//? ? MessageBox.Show("程序已經運行!", "提示",
? ?? ?? ?? ?//? ? MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
? ?? ?? ?? ?//? ? return;
? ?? ?? ?? ?//}? ?
代碼:
? ?? ?? ?? ?? ?? ?? ?? ?//保證同時只有一個客戶端在運行? ?? ?? ?? ?? ?//System.Threading.Mutex mutexMyapplication = new System.Threading.Mutex(false, "OnePorcess.exe");
? ?? ?? ?? ?//if (!mutexMyapplication.WaitOne(100, false))
? ?? ?? ?? ?//{
? ?? ?? ?? ?//? ? MessageBox.Show("程序" + Application.ProductName + "已經運行!", Application.ProductName,
? ?? ?? ?? ?//? ? MessageBoxButtons.OK, MessageBoxIcon.Error);
? ?? ?? ?? ?//? ? return;
? ?? ?? ?? ?//}
代碼:
//=====判斷進程法:(修改程序名字后依然能執行)=====? ?? ?? ?? ?//Process current = Process.GetCurrentProcess();
? ?? ?? ?? ?//Process[] processes = Process.GetProcessesByName(current.ProcessName);
? ?? ?? ?? ?//foreach (Process process in processes)
? ?? ?? ?? ?//{
? ?? ?? ?? ?//? ? if (process.Id != current.Id)
? ?? ?? ?? ?//? ? {
? ?? ?? ?? ?//? ?? ???if (process.MainModule.FileName
? ?? ?? ?? ?//? ?? ???== current.MainModule.FileName)
? ?? ?? ?? ?//? ?? ???{
? ?? ?? ?? ?//? ?? ?? ?? ?MessageBox.Show("程序已經運行!", Application.ProductName,
? ?? ?? ?? ?//? ?? ?? ?? ?MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
? ?? ?? ?? ?//? ?? ?? ?? ?return;
? ?? ?? ?? ?//? ?? ???}
? ?? ?? ?? ?//? ? }
? ?? ?? ?? ?//}? ??? 只需要把需要的方法代碼放在Void Main()方法中就可以實現..
轉載于:https://www.cnblogs.com/justForMe/archive/2011/03/01/1967786.html
總結
以上是生活随笔為你收集整理的C#实现让程序只能打开一个实例(总结3方法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: uitableview 默认选中行
- 下一篇: VC中的#pragma指令的用法