logo

如何确保只有一个应用程序实例在运行?

作者:孟宪会 阅读:4577 发表于: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