[C#] 避免重複開啟應用程式
在開發Windows Form的時候,
常常會需要限制使用者,
一次只能開啟一個程式,
為了使用上的方便,
寫了一個Class方便Reuse,
public class ProcessChecker
{
public static bool IsProcessing(ProcessCheckRange type)
{
string moduleName = Process.GetCurrentProcess().MainModule.ModuleName;
string mutexRange = string.Empty;
bool isCreated = false;
switch (type)
{
case ProcessCheckRange.Global:
default:
mutexRange = "Global\\";
break;
case ProcessCheckRange.Local:
mutexRange = "Local\\";
break;
}
System.Threading.Mutex mutex = new System.Threading.Mutex(true, mutexRange + moduleName, out isCreated);
return isCreated;
}
}
public enum ProcessCheckRange
{
Global,
Local
}
使用時只需傳入鎖定範圍是Global或是Local,
即可依據回傳值判斷程式是否已在運行中。
bool isProcessing = ProcessChecker.IsProcessing(ProcessCheckRange.Global);
參考資料: