C#user32.dll内嵌方法使用详解

目录

1.GetWindowText 获取给定窗口句柄的窗口标题

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()
    {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值