/// <summary> /// 檢查應用程式是否已執行 /// </summary> /// <param name="checkRange">檢查範圍 : Global (同一主機所有使用者), Local (同一主機相同使用者)</param> /// <returns>是否已執行</returns> public static bool IsProcessExists(ProcessCheckRange checkRange) { var isCreated = false; var muteRange = "Global\\"; switch (checkRange) { case ProcessCheckRange.Global: muteRange = "Global\\"; break; case ProcessCheckRange.Local: muteRange = "Local\\"; break; } var mutexName = Process.GetCurrentProcess().ProcessName; System.Threading.Mutex mutex = new System.Threading.Mutex(true, muteRange + mutexName, out isCreated); return isCreated; }
/// <summary> /// 檢查應用程式是否已執行 /// </summary> /// <param name="checkRange">檢查範圍 : Global (同一主機所有使用者), Local (同一主機相同使用者)</param> /// <returns>是否已執行</returns> public static bool IsProcessExists(ProcessCheckRange checkRange) { var isCreated = false; var muteRange = "Global\\"; switch (checkRange) { case ProcessCheckRange.Global: muteRange = "Global\\"; break; case ProcessCheckRange.Local: muteRange = "Local\\"; break; } var mutexName = Process.GetCurrentProcess().ProcessName; System.Threading.Mutex mutex = new System.Threading.Mutex(true, muteRange + mutexName, out isCreated); return(isCreated); }
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 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 static bool IsProcessing(ProcessCheckRange type, out Mutex mutex) { //string moduleName = Process.GetCurrentProcess().MainModule.ModuleName; //process name (會因改檔名而跟著變) string moduleName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name; string mutexRange = string.Empty; bool isCreated = false; switch (type) { case ProcessCheckRange.Global: default: mutexRange = "Global\\"; //everyone 只能存在一個process break; case ProcessCheckRange.Local: mutexRange = "Local\\"; //只限定同使用者 只能存在一個process break; } mutex = new System.Threading.Mutex(true, mutexRange + moduleName, out isCreated); return isCreated; }