static class Program { //给这个程序主窗体起个名字 private static string strProcessName = "Form1"; private static string strAppName = "WindowsFormsApplication1"; static int hWnd = 0; //随便个数字,用来做判断 const int SW_SHOW = 1; //指定是那个DLL,或者进程 [DllImport("user32.dll", EntryPoint = "ShowWindow")] public static extern int ShowWindow(int hwnd, int nCmdShow);
[DllImport("user32")] public static extern int GetWindowText(int hWnd, StringBuilder lpString, int nMaxCount);
[DllImport("user32")] public static extern int EnumWindows(CallBack x, int y);
public delegate bool CallBack(int hWnd, int lParam);
/// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { //进程数组 Process[] ps = Process.GetProcessesByName(strAppName); //声明个委托 CallBack myCallBack = new CallBack(FineAppWindow); EnumWindows(myCallBack, 0);
if (ps.Length > 1) {//如果进程里面有这个 ShowWindow(hWnd, SW_SHOW); return; } else { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } }
public static bool FineAppWindow(int hwnd, int lParam) { StringBuilder sb = new StringBuilder(200); int n = GetWindowText(hwnd, sb, 200);
if (sb.ToString() == strProcessName) { hWnd = hwnd; } return true; } }
调用的是系统的一个类库,代码也是在网上找到 就直接贴上去了 收藏,希望作者见了勿怪!非原创
|
请发表评论