c# 在一個程序裏喚醒另一個程序(最小化時顯示在前面)

[DllImport("user32.dll ")]
        private static extern bool SetForegroundWindow(IntPtr hWnd);

        [DllImport("user32.dll")]
        private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

        //根據任務欄應用程序顯示的名稱找相應窗口的句柄
        [DllImport("User32.dll", EntryPoint = "FindWindow")]
        private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
        private const int SW_RESTORE = 9;
        private void OpenSerialPortUtility(object sender, EventArgs e)
        {  
            //遍歷進程列表查找目標程序是否運行運行則前置否則啓動
            Process[] pList = Process.GetProcesses(".");
            bool b = false;
            foreach (Process p in pList)
            {
                if (p.ProcessName == "wpfYourSystem")
                {
                    b = true; 
                    ShowWindow(p.MainWindowHandle, SW_RESTORE); //將窗口還原,如果不用此方法,縮小的窗口不能激活                    
                    break;
                }
            }
            if (b == false)
            {
                System.Diagnostics.Process.Start(@"C:\Users\Administrator\Desktop\9.18測試\醫生端\Debug\wpfYourSystem.exe");
            }
        } 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章