C# Winform程序?qū)崿F(xiàn)防止多開的方法總結(jié)【親測】
本文實例講述了C# Winform程序?qū)崿F(xiàn)防止多開的方法。分享給大家供大家參考,具體如下:
1、Winform啟動的時候,檢測是否存在同樣的進(jìn)程名,防止程序多開;
static class Program { /// <summary> /// 應(yīng)用程序的主入口點。 /// </summary> [STAThread] static void Main() { Process[] processes = Process.GetProcesses(); Process currentProcess = Process.GetCurrentProcess(); bool processExist = false; foreach (Process p in processes) { if (p.ProcessName == currentProcess.ProcessName && p.Id != currentProcess.Id) { processExist = true; } } if (processExist) { Application.Exit(); } else { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } }
static class Program { /// <summary> /// 應(yīng)用程序的主入口點。 /// </summary> [STAThread] static void Main() { string processName = Process.GetCurrentProcess().ProcessName; Process[] processes = Process.GetProcessesByName(processName); //如果該數(shù)組長度大于1,說明多次運行 if (processes.Length > 1) { MessageBox.Show("程序已運行,不能再次打開!"); Environment.Exit(1); } else { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } }
2、利用Mutex互斥對象防止程序多開;
static class Program { /// <summary> /// 應(yīng)用程序的主入口點。 /// </summary> [STAThread] static void Main() { bool isAppRunning = false; Mutex mutex = new Mutex(true, System.Diagnostics.Process.GetCurrentProcess().ProcessName, out isAppRunning); if (!isAppRunning) { MessageBox.Show("程序已運行,不能再次打開!"); Environment.Exit(1); } Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } }
更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《C#程序設(shè)計之線程使用技巧總結(jié)》、《WinForm控件用法總結(jié)》、《C#中XML文件操作技巧匯總》、《C#常見控件用法教程》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#數(shù)組操作技巧總結(jié)》及《C#面向?qū)ο蟪绦蛟O(shè)計入門教程》
希望本文所述對大家C#程序設(shè)計有所幫助。
相關(guān)文章
關(guān)于C#連接SQL Server時提示用戶登錄失敗的解決方法
在用C#開發(fā)windows端程序并連接SQL Server時有可能會遇到數(shù)據(jù)庫登錄失敗的問題,下面小編給大家?guī)砹薈#連接SQL Server時提示用戶登錄失敗的解決方法,感興趣的朋友一起看看吧2021-11-11基于動態(tài)修改App.Config與web.Config的使用詳解
本篇文章是對動態(tài)修改App.Config與web.Config的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05C#訪問C++動態(tài)分配的數(shù)組指針(實例講解)
下面小編就為大家分享一篇C#訪問C++動態(tài)分配的數(shù)組指針(實例講解),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12c#異步操作后臺運行(backgroundworker類)示例
這篇文章主要介紹了c#異步操作后臺運行(backgroundworker類)示例,需要的朋友可以參考下2014-04-04C# 重寫ComboBox實現(xiàn)下拉任意組件的方法
C#種的下拉框ComboBox不支持下拉復(fù)選框列表與下拉樹形列表等,系統(tǒng)中需要用到的地方使用了第三方組件,現(xiàn)在需要將第三方組件替換掉。這篇文章主要介紹了C# 重寫ComboBox實現(xiàn)下拉任意組件的相關(guān)資料,需要的朋友可以參考下2016-10-10C#中字段、屬性、只讀、構(gòu)造函數(shù)賦值、反射賦值的問題
這篇文章主要介紹了C#中字段、屬性、只讀、構(gòu)造函數(shù)賦值、反射賦值的問題 ,非常不錯,具有一定的參考借鑒借鑒價值,需要的朋友可以參考下2018-08-08