在C#中调用Win32函数EnumWindows枚举所有窗口
我们都知道微软.Net中,C# 是用来 开发 网络 解决方案 的首先语言。但是在胖客户端,C# 同样有着出色的表现。对那些熟悉 Win32 API 的 程序员 来说,关键是如何将 C# 的新特性与 Win32 API 融合在一起。 下面例子说明如何在 C# 中调用 Win32 API - EnumWindo
我们都知道微软.Net中,C# 是用来
开发网络解决方案的首先语言。但是在胖客户端,C# 同样有着出色的表现。对那些熟悉 Win32 API 的
程序员来说,关键是如何将 C# 的新特性与 Win32 API 融合在一起。
下面例子说明如何在 C# 中调用 Win32 API - Enum
Windows 枚举所有窗口:
1.首先需要声明一个委托函数用于 Win32 API - EnumWindows 的回调函数:
public delegate bool CallBack(int hwnd, int lParam);
2.然后利用 C# 中的平台调用声明从 USER32.DLL 库中调用 API - EnumWindows,具体参数请参考 MSDN - Win32 API。
[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;
}
}
注:有关“委托”、“平台调用”及“实例化”等的详细
资料请参考 Visual .Net Help。
原文转自:http://www.ltesting.net
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
|