在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.kjueaiud.com
- 評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
-
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
|