首页 > 代码库 > C# 判断某程序是否运行

C# 判断某程序是否运行

[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");

 

            }

        }

C# 判断某程序是否运行