C#判断某措施是否运行的要领

时间:2022-05-22 07:57:09

具体实现要领如下:

[DllImport("user32.dll")] private static extern bool SetForegroundWindow(IntPtr hWnd); [DllImport("user32.dll")] private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); [DllImport("user32.dll")] private static extern bool IsIconic(IntPtr hWnd); // 动静函数 [DllImport("user32.dll", EntryPoint = "PostMessageA")] public static extern bool PostMessage(IntPtr hWnd, int Msg, int wParam, int lParam); [DllImport("user32.dll")] public static extern IntPtr FindWindow(string strclassName, string strWindowName); [DllImportAttribute("user32.dll")] public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); public const int WM_SYSCOMMAND = 0x0112; public const int SC_MAXIMIZE = 0xF030; private string exeName = "SaoMiaoApp"; public void SetForm() { Process[] processes = Process.GetProcessesByName(exeName); if (processes.Length > 0) { IntPtr hWnd = processes[0].MainWindowHandle; if (IsIconic(hWnd)) ShowWindowAsync(hWnd, 9);// 9就是SW_RESTORE标识表记标帜,,暗示还原窗体 //SendMessage(hWnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0); SetForegroundWindow(hWnd); } else { Process.Start(exeName + ".exe"); } }