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();
}
}
}
}
winform 检查窗口是否已打开
最新推荐文章于 2024-08-01 15:30:14 发布