日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

让你的程序只能运行一个实例

發布時間:2024/9/5 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 让你的程序只能运行一个实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
????先說一個循環系統進程的方法吧,
????????????//首先取得你的程序當前進程
????????????Process current = Process.GetCurrentProcess();
????????????//用你進程的名字到系統進程中取
??????????? Process[] processes = Process.GetProcessesByName(current.ProcessName);
????????????//真的取到了多個就循環他們
????????????foreach (Process process in processes)
??????????? {
????????????????//因為即使進程名一致但是進程ID仍然會不同,如果在你系統里存在兩個你的程序了
??????????????? if (process.Id != current.Id)
??????????????? {
??????????????????? if (process.MainModule.FileName
??????????????????? == current.MainModule.FileName)
??????????????????? {
????????????????????????//經過多個判斷可以確定你程序的進程在系統中已經有存在了,那么就關掉它吧
??????????????????????? MessageBox.Show("程序已經運行!", Application.ProductName,
??????????????????????? MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
??????????????????????? Application.Exit();
??????????????????????? return;
??????????????????? }
??????????????? }
??????????? }??
????再說另一種使用互斥對象的方法,
???????????? //這里第2個參數是保證你程序唯一性的而一個字符串
?????????????static Mutex mutex = new Mutex(false, "f880a127-9d21-4907-aa83-6041dc0faa4a");
?????????????if (!mutex.WaitOne(1000,false)) //等待1秒, 如果有相同實例運行則給用戶提示
??????????? {
??????????????? MessageBox.Show("程序已在運行,如果仍有問題,請檢查是否已在系統進程中運行。");
??????????????? return;
??????????? }
??????????? try
??????????? {
??????????????? Application.EnableVisualStyles();
??????????????? Application.SetCompatibleTextRenderingDefault(false);
??????????????? Application.Run(new Form1());
??????????? }
??????????? finally { mutex.ReleaseMutex(); }

????總結完畢.

轉載于:https://www.cnblogs.com/wzc998/archive/2008/05/31/1211287.html

總結

以上是生活随笔為你收集整理的让你的程序只能运行一个实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。