C#中调用Win32 API

开发 后端
本文介绍C#中调用Win32 API,对那些熟悉 Win32 API 的程序员来说,关键是如何将 C# 的新特性与 Win32 API 融合在一起。

我们都知道微软.Net中,C# 是用来开发网络解决方案的首先语言。但是在胖客户端,C# 同样有着出色的表现。对那些熟悉 Win32 API 的程序员来说,关键是如何将 C# 的新特性与 Win32 API 融合在一起。

下面例子说明如何在 C# 中调用 Win32 API - EnumWindows 枚举所有窗口:

1.首先需要声明一个委托函数用于 Win32 API - EnumWindows 的回调函数:

  1. public delegate bool CallBack(int hwnd, int lParam);  
  2. [DllImport("user32")]  
  3. public static extern int EnumWindows(CallBack x, int y);  

2.最后实例化委托,调用 EnumWindows。

  1. CallBack myCallBack = new CallBack(EnumWindowsApp.Report);  


3.完全代码如下:

  1. using System;  
  2. using System.Runtime.InteropServices;  
  3. public delegate bool CallBack(int hwnd, int lParam);  
  4. public class EnumWindowsApp  
  5. {  
  6. [DllImport("user32")]  
  7. public static extern int EnumWindows(CallBack x, int y);  
  8. public static void Main()  
  9. {  
  10. CallBack myCallBack = new CallBack(EnumWindowsApp.Report);  
  11. EnumWindows(myCallBack, 0);  
  12. }  
  13. public static bool Report(int hwnd, int lParam)  
  14. {  
  15. Console.Write("Window handle is :");  
  16. Console.WriteLine(hwnd);  
  17. return true;  
  18. }  
  19. }  

注:有关“委托”、“平台调用”及“实例化”等的详细资料请参考 Visual .Net Help。2.然后利用 C# 中的平台调用声明从 USER32.DLL 库中调用 API - EnumWindows,具体参数请参考 MSDN - Win32 API.

【编辑推荐】

  1. C#在应用程序间发送消息实现浅析
  2. 一些C#时间类型的入门知识
  3. C#接口和抽象类技术特点浅析
  4. 一个C#时间计算的实例
  5. C#继承知识详解
责任编辑:佚名 来源: IT168
相关推荐

2009-08-28 15:45:32

C#操作Win32 A

2011-09-26 10:34:15

2009-08-17 08:14:00

C# Win32类库

2009-08-17 13:49:20

C#中调用Window

2009-08-03 13:34:57

C#调用Windows

2009-07-31 16:12:10

Windows APIC#

2009-08-07 16:10:20

C#调用API

2009-08-05 15:10:19

C#调用GoogleE

2009-08-03 13:13:52

C#调用Outlook

2009-12-18 16:43:32

Ruby模块Win32

2009-08-03 14:09:15

C#调用API

2009-08-21 17:42:36

C#调用API

2009-08-17 13:18:01

C#调用Windows

2009-07-10 10:28:29

C#调用Outlook

2009-08-25 16:16:27

C#调用Windows

2013-10-25 08:37:32

2009-08-03 11:32:49

C#调用COM对象

2010-05-25 17:45:00

MySQL备份

2009-08-11 14:16:00

Winform调用WEC#

2009-08-17 13:26:20

C#调用Windows
点赞
收藏

51CTO技术栈公众号