winform 检查窗口是否已打开

来源:互联网 发布:淘宝拍单兼职真假 编辑:程序博客网 时间:2024/05/18 23:56
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Runtime.InteropServices;namespace WindowsForm{    publicpartialclass Form1 : Form     {        public Form1()         {             InitializeComponent();         }        ///<summary>        /// 获取窗体句柄        ///</summary>        ///<param name="lpClassName"></param>        ///<param name="lpWindowName">窗体名称</param>        ///<returns>IntPtr 句柄</returns>         [DllImport("User32.dll")]        privatestaticextern IntPtr FindWindow(String lpClassName, String lpWindowName);         [DllImport("User32.dll")]        publicstaticexternint IsWindow(IntPtr hWnd);        ///<summary>        ///   该函数将创建指定窗口的线程设置到前台,并且激活该窗口。键盘输入转向该窗口,并为用户改各种可视的记号。        ///   系统给创建前台窗口的线程分配的权限稍高于其他线程。        ///</summary>        ///<param name="hWnd">将被激活并被调入前台的窗口句柄</param>        ///<returns>如果窗口设入了前台,返回值为非零;如果窗口未被设入前台,返回值为零</returns>         [DllImport("User32.dll")]        privatestaticexternbool SetForegroundWindow(IntPtr hWnd);        privatevoid button1_Click(object sender, EventArgs e)         {             IntPtr handle = FindWindow(null, "Form2");            if (IsWindow(handle) >0)             {                 SetForegroundWindow(handle);             }            else             {                 Form2 f =new Form2();                 f.Show();             }         }     }}

原创粉丝点击