C#中调用Win32 API

网友投稿 230 2023-05-20

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

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

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

复制public delegate bool CallBack(int hwnd, int lParam);   [DllImport("user32")]   public static extern int EnumWindows(CallBack x, int y);   1.2.3.

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

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

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;   }   }   1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.

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

【编辑推荐】

C#在应用程序间发送消息实现浅析 一些C#时间类型的入门知识 C#接口和抽象类技术特点浅析 一个C#时间计算的实例 C#继承知识详解

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springboot实现多实例crontab抢占定时任务(实例代码)
下一篇:人脸检测:在公共交通场所监控中起什么样的作用?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~