在C#中调用API获取网络信息和流量
最近一项目中要求显示网络流量,而且必须使用C#。
事实上,调用 IpHlpApi.dll 的 GetIfTable API 可以轻易获得网络信息和网络流量。只是要在C#中实现还是比较复杂。
先看看怎么定义该 API
本来想把 pIfTable 定义为 IntPtr,但是这样的结果是,获取的信息是错误的(直到现在都不知是什么原因)。
但显然定义为 byte[] 是不能直接使用的。幸好在 Google Code Search 找到了三个类:
再定义一个 NetInfo 类,存储网络信息
OK,现在可以获取网络信息了
PS:事实上,我把获取网络、CPU、内存、磁盘、进程信息等功能封装起来,并做了一个比较完善的 Windows 任务管理器,整理完后发布源码。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
(C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
(本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢~) 接上一节:(C#)Windows Shell 外壳编程系列8 - 同后缀名不同图标? QueryInfo扩展活动桌面引入一项新特性,当你在某些特定对象上旋停鼠标时,工具提示将显示它们的描述。我们可以使用QueryInfo扩展为Shell中的其它对象提供自定义的工具提示。如下图:事实上,这个功能实现比前两个 Shell 扩展更简单,它仅仅是实现IQueryInfo接口: IQueryInfo 接口定义 IQueryInfo接口只包含两个函数,其中GetInfoFlags目前还不被支持并且必须返回 0。 GetInfoTip()让我们返回工具提示文本 字符串。其参数: dwFlags当前并不被使用。 pszInfoTip是个Unicode 字符串指针变量的指针,我们要将其赋值为我们所分配的字符串缓冲区的指针。 还记得之前使用IPersistFile接口获取单个文件路径保存在szFileName变量中吗?现在也可以使用: GetInfoTip 代码:http://files.cnblogs.com/lemony...
- 下一篇
Windows下visual studio code搭建golang开发环境
前言 其实环境搭建没什么难的,但是遇到一些问题,主要是有些网站资源访问不了(如:golang.org),导致一些包无法安装,最终会导致环境搭建失败,跟据这个教程几步,我们将可以快速的构建golang的开发环境。 开发环境: 一、安装 这里我用需要安装一些工具: 1.Visual Studio Code 1.0.0 2.Golang下载 这里我使用的是Go1.6. 3.git下载 这一步跟建环境没什么关系, 但是之后要引用一些包需要它. 4.安装vscode-go 插件 安装方法:打开vscode 按F1 然后选择安装扩展 选择go 下载后 重启 5.下载vscode扩展依赖工具 vscode-go 插件需要一些工具,这些功具默认需要这样安装: go get -u -v github.com/nsf/gocode go get -u -v github.com/rogpeppe/godef go get -u -v github.com/golang/lint/golint go get -u -v github.com/lukehoban/go-outline go get -u -v...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS6,CentOS7官方镜像安装Oracle11G