首页 > 编程 > C# > 正文

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

2023-05-15 12:29:35
字体:
来源:转载
供稿:网友

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

                }

        }

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表