[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
如果检测到已有窗体实例,将此实例显示出来参考:
[static void Main()
{
//Get the running instance.
Process instance = if (instance == null)
{
//There isn't another instance, show our form.
new }
else
{
//There is another instance of this process.
}
}
public static Process {
Process current = //Loop through the running processes in with the same name
foreach (Process in processes)
{
//Ignore the current process
if ( {
//Make sure that the process is running from the exe file.
if ( {
//Return the other process instance.
return process;
}
}
}
//No other instance was found, return null.
return null;
}
public static void
{
//Make sure the window is not minimized or maximized
WS_SHOWNORMAL);
//Set the real
}
[
private static extern bool int [private static extern bool private const int WS_SHOWNORMAL = 1