C#檢測程式重複啟動並執行函數(可以在多使用者登入情況下檢測)

來源:互聯網
上載者:User

上文是在網上找的檢測程式重複啟動並執行類,但是感覺不是很好用,而且還使用了API,似乎完全沒有必要,於是晚上自己寫了一個函數,經過測試,在多使用者下仍然可以檢測到程式的多次運行。當然,如果程式改了名字還是可以再次運行,不過這種方式只怕沒有什麼太好的辦法來,除非是在.NET環境或註冊表中寫入一些標誌,但似乎也沒有必要。

 

  1.         if (AppInstance())
  2.         {
  3.             MessageBox.Show("警告:程式正在運行中! 請不要重複開啟程式!", "系統提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  4.             return;
  5.         }
  6.         public static bool AppInstance()
  7.         {
  8.             Process[] MyProcesses = Process.GetProcesses();
  9.             int i = 0;
  10.             foreach (Process MyProcess in MyProcesses)
  11.             {
  12.                 if (MyProcess.ProcessName == Process.GetCurrentProcess().ProcessName)
  13.                 {
  14.                     i++;
  15.                 }
  16.             }
  17.             return (i > 1) ? true : false;
  18.         }

其實就在是進程中檢查進程名,如果多於一個,則返回TRUE

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.