上文是在網上找的檢測程序重複運行的類,可是感受不是很好用,並且還使用了API,彷佛徹底沒有必要,因而晚上本身寫了一個函數,通過測試,在多用戶下仍然能夠檢測到程序的屢次運行。固然,若是程序改了名字仍是能夠再次運行,不過這種方式只怕沒有什麼太好的辦法來,除非是在.NET環境或註冊表中寫入一些標誌,但彷佛也沒有必要。函數
if (AppInstance()) { MessageBox.Show("警告:程序正在運行中! 請不要重複打開程序!", "系統提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } public static bool AppInstance() { Process[] MyProcesses = Process.GetProcesses(); int i = 0; foreach (Process MyProcess in MyProcesses) { if (MyProcess.ProcessName == Process.GetCurrentProcess().ProcessName) { i++; } } return (i > 1) ? true : false; }
其實就在是進程中檢查進程名,若是多於一個,則返回TRUE測試
出處:http://blog.csdn.net/lanman/article/details/3655972spa