目录
2.FindWindowEx函数在指定的父窗口下查找具有指定类名和窗口标题的窗口
3.FindWindow函数根据窗口的类名和窗口标题进行查找
4.IsWindowVisible函数用于确定指定窗口是否可见
5.GetWindowTextLength函数用于获取指定窗口标题文本的长度
6.SetForegroundWindow函数用于将指定窗口设置为前台窗口,并将其激活
7.EnumWindows函数用于枚举系统中所有顶级窗口的句柄
8.EnumChildWindows函数来获取指定窗口的所有子窗口句柄
9.EnumChildWindows函数用于枚举指定父窗口的所有子窗口
10.SetWindowsHookEx、UnhookWindowsHookEx和CallNextHookEx函数安装、卸载、调用下一个勾子
1.GetWindowText 获取给定窗口句柄的窗口标题
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int GetWindowText(IntPtr hWnd, System.Text.StringBuilder lpString, int nMaxCount);
static void Main()
{
IntPtr hWnd = ...; // 要获取窗口标题的窗口句柄
// 指定字符串缓冲区的大小
const int maxCount = 256;
var sb = new System.Text.StringBuilder(maxCount);
// 调用GetWindowText函数获取窗口标题
int length = GetWindowText(hWnd, sb, maxCount);
if (length > 0)
{
string windowTitle = sb.ToString();
Console.WriteLine("窗口标题: " + windowTitle);
}
else { Console.WriteLine("无法获取窗口标题."); }
}
2.FindWindowEx
函数在指定的父窗口下查找具有指定类名和窗口标题的窗口
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindowEx(IntPtr hWndParent, IntPtr hWndChildAfter, string lpszClass, string lpszWindow);
static void Main()
{
IntPtr parentHandle = ...; // 父窗口句柄
IntPtr childAfterHandle = IntPtr.Zero; // 子窗口句柄
string className = "SomeClassName"; // 窗口类名
string windowTitle = "SomeWindowTitle"; // 窗口标题
// 调用FindWindowEx函数查找指定类名和窗口标题的窗口
IntPtr foundHandle = FindWindowEx(parentHandle, childAfterHandle, className, windowTitle);
if (foundHandle != IntPtr.Zero)
{
Console.WriteLine("找到窗口!"); // 执行你的操作,例如发送消息或获取窗口句柄
}
else
{
Console.WriteLine("未找到窗口.");
}
}
3.FindWindow
函数根据窗口的类名和窗口标题进行查找
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
static void Main()
{
// 在此处指定窗口的类名和窗口标题
string className = null; // 如果不关心类名,可以设置为 null 或者空字符串
string windowName = "Untitled - Notepad";
// 调用 FindWindow 函数来查找窗口句柄
IntPtr windowHandle = FindWindow(className, windowName);
if (windowHandle != IntPtr.Zero)
{
Console.WriteLine("找到窗口句柄: " + windowHandle);
}
else
{
Console.WriteLine("未找到窗口句柄"); } Console.ReadLine();
}
4.IsWindowVisible
函数用于确定指定窗口是否可见
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool IsWindowVisible(IntPtr hWnd);
static void Main()
{