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(); } } }}