`
java-mans
  • 浏览: 11391988 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

下面例子说明如何在 C# 中调用 Win32 API - EnumWindows 枚举所有窗口:
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; 
} 
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics