如何确保只有一个应用程序实例在运行?
作者:孟宪会 发布日期:2003-06-16 06:58:22

用System.Diagnostics 的Process类

[C#] public static Process RunningInstance() { Process current = Process.GetCurrentProcess(); Process[] processes = Process.GetProcessesByName (current.ProcessName); //Loop through the running processes in with the same name foreach (Process process in processes) { //Ignore the current process if (process.Id != current.Id) { //Make sure that the process is running from the exe file. if (Assembly.GetExecutingAssembly().Location.Replace("/", "\\") == current.MainModule.FileName) { //Return the other process instance. return process; } } } //No other instance was found, return null. return null; } [VB.NET] Public Shared Function RunningInstance() As Process Dim current As Process = Process.GetCurrentProcess() Dim processes As Process() = Process.GetProcessesByName(current.ProcessName) 'Loop through the running processes in with the same name Dim process As Process For Each process In processes 'Ignore the current process If process.Id <> current.Id Then 'Make sure that the process is running from the exe file. If [Assembly].GetExecutingAssembly().Location.Replace("/", "\") = current.MainModule.FileName Then 'Return the other process instance. Return process End If End If Next process 'No other instance was found, return null. Return Nothing End Function 'RunningInstance
原文地址:http://dotnet.aspx.cc/article/f7810234-04d8-4f9c-b1c7-925919e691ff/print.aspx
© 版权所有 【孟宪会之精彩世界】TM 2012