Process CurrentInstance = GetExitProcess();
if (CurrentInstance != null)
{
SetForeground(CurrentInstance);
Application.Exit();
return;
}
else
{
Application.Run(new Form());
}
//获取当前程序运行的实例
private static Process GetExitProcess()
{
Process currentProcess = Process.GetCurrentProcess();
foreach (Process process in Process.GetProcessByName(currentProcess.ProcessName))
{
if (process.Id = currentProcess.Id)
{
return process;
}
}
return null;
}
//使当前程序实例放到屏幕正前方
private static void SetForeground(Process instance)
{
IntPtr mainFormHandle = instance.MainWindowHandle;
if (mainFormHandle != IntPtr.Zero)
{
ShowWindowAsync(mainFormHandle, 1);
SetForegroundWindow(mainFormHandle);
}
}
[Dllimport("User32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
[Dllimport("User32.dll")]
private static extern bool ShowWindowAsync(IntPtr, int cmdShow);