C#winform窗体如何通过windowApi的FindWindow函数获取窗体句柄
时间: 2023-12-16 15:05:50 浏览: 236
要通过Win32 API的FindWindow函数获取C# Winform窗体的句柄,需要使用DllImport导入user32.dll文件,然后调用FindWindow函数。
以下是代码示例:
```csharp
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
public class Win32API
{
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
IntPtr handle = Win32API.FindWindow(null, "窗体标题");
if (handle != IntPtr.Zero)
{
MessageBox.Show("窗体句柄:" + handle);
}
else
{
MessageBox.Show("未找到窗体!");
}
}
}
```
在上面的代码中,FindWindow函数的第一个参数lpClassName指定窗口类名,可以传入null表示不考虑窗口类名。第二个参数lpWindowName指定窗口标题,可以传入窗口的标题文字或者窗口类名。如果找到了符合条件的窗口,FindWindow函数会返回该窗口的句柄,否则返回IntPtr.Zero。
阅读全文