C#调用windows的API函数实现将不活动窗口置为活动窗口,并置前显示

1.在文件前面添加命名空间的引用

using System.Runtime.InteropServices;
2.在类定义主体中,以静态调用的方式加入对API的引用

这里是对窗口需要切换显示所需要用的函数
       //将窗口显示
        [DllImport("user32.dll", EntryPoint = "ShowWindow", CharSet = CharSet.Auto)]
        private static extern int ShowWindow(IntPtr hWnd, int nCmdShow);
        //切换窗体显示
        [System.Runtime.InteropServices.DllImport("user32.dll")]
        public static extern bool SetForegroundWindow(IntPtr hWnd);

3。对函数的调用

                Process[] processCurrent=Process.GetProcesses();//得到系统中存在的进程
                for (int i = 0; i < processCurrent.Length;i++ )
                {
                    //这里是得到你需要置前的进程窗体,我这里以迅雷为例
                    if (processCurrent[i].ProcessName == "Thunder")
                    {
                        //MessageBox.Show("只能运行一个Seisgram程序", "请确定", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        ShowWindow(processCurrent[i].MainWindowHandle,1);//后面那个参数1代表正常窗口显示,2代表最小化显示,3代表最大化显示
                        SetForegroundWindow(processCurrent[i].MainWindowHandle);
                        return;
                    }
                }

你可能感兴趣的:(windows,api,活动,C#,user)