本文介绍了使用Win32 API枚举所有窗口的方法,主要是调用了API 的EnumWindows函数来实现的。下面是具体的步骤:
(1)声明一个委托函数用于 Win32 API - EnumWindows 的回调函数:
public delegate bool CallBack(int hwnd, int lParam);
(2)利用 C# 中的平台调用声明从 USER32.DLL 库中调用 API - EnumWindows。
[DllImport("user32")] public static extern int EnumWindows(CallBack x, int y);
(3)实例化委托,调用 EnumWindows。
CallBack myCallBack = new CallBack(EnumWindowsApp.Report);
(4)完整源代码如下
using System;
using System.Runtime.InteropServices;
public delegate bool CallBack(int hwnd, int lParam);
public class EnumWindowsApp
{
[DllImport("user32")]
public static extern int EnumWindows(CallBack x, int y);
public static void Main()
{
CallBack myCallBack = new CallBack(EnumWindowsApp.Report);
EnumWindows(myCallBack, 0);
}
public static bool Report(int hwnd, int lParam)
{
Console.Write("Window handle is :");
Console.WriteLine(hwnd);
return true;
}
}
新闻热点
疑难解答