在C#中调用API函数枚举所有窗口

时间:2021-05-02

本文介绍了使用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;

}

}

本文源自:翔宇亭——IT乐园(http://),转载请保留此信息!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章