C#中調(diào)用Win32 API
我們都知道微軟.Net中,C# 是用來開發(fā)網(wǎng)絡解決方案的首先語言。但是在胖客戶端,C# 同樣有著出色的表現(xiàn)。對那些熟悉 Win32 API 的程序員來說,關鍵是如何將 C# 的新特性與 Win32 API 融合在一起。
下面例子說明如何在 C# 中調(diào)用 Win32 API - EnumWindows 枚舉所有窗口:
1.首先需要聲明一個委托函數(shù)用于 Win32 API - EnumWindows 的回調(diào)函數(shù):
- public delegate bool CallBack(int hwnd, int lParam);
 - [DllImport("user32")]
 - public static extern int EnumWindows(CallBack x, int y);
 
2.最后實例化委托,調(diào)用 EnumWindows。
- CallBack myCallBack = new CallBack(EnumWindowsApp.Report);
 
3.完全代碼如下:
- 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;
 - }
 - }
 
注:有關“委托”、“平臺調(diào)用”及“實例化”等的詳細資料請參考 Visual .Net Help。2.然后利用 C# 中的平臺調(diào)用聲明從 USER32.DLL 庫中調(diào)用 API - EnumWindows,具體參數(shù)請參考 MSDN - Win32 API.
【編輯推薦】















 
 
 
 
 
 
 