using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace UCMenjinCtrServ
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
///
public const int SW_SHOW = 5;
private const int SW_NORMAL = 1;
[DllImport("user32.dll")]//设置窗体位活动窗体
private static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll")]//设置窗体状态
private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
private const int SW_RESTORE = 9; //用原来的大小和位置显示一个窗口
[STAThread]
static void Main()
{
bool newMutex;
System.Threading.Mutex m = new System.Threading.Mutex(true, Application.ProductName, out newMutex);
{
if (newMutex)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new form1());
m.ReleaseMutex();
}
else
{
//MessageBox.Show("应用程序已经启动,右下角图标查看!");
Process current = Process.GetCurrentProcess();
Process []pros=Process.GetProcessesByName(current.ProcessName);
foreach (Process p in pros)
{
if (p.Id != current.Id)
{//会查上来两个 将不是自己的那个显示出来
ShowWindowAsync(p.MainWindowHandle, 1);//设置窗体状态
SetForegroundWindow(p.MainWindowHandle);//激活窗体
}
}
}
}
}
}
}