C语言获取远程电脑上某进程的CPU占有率或内存率

冉航--小虾米 2010-11-22 11:21:55
大家好:

我只知道 如何 获取 本地机器上 某进程的 CPU占有率 和 内存使用情况,这个直接调用API就可以了。

但是,我的监测程序 要求 装在远程机器上,那么我如何从远程机器上 获取本地机器上 某进程的CPU占有率或内存使用情

况? 我感觉不太可能,原因是那些API都是执行在本地机器上的客户端API.并没有用于获取CPU率的网络API,不知道大家是如

何思考的。
xw.gao
...全文
455 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
FengRider 2010-11-29
  • 打赏
  • 举报
回复
我知道的有两种方式,一种通过WMI协议远程登陆到远程Windows后,执行WQL查询获取远程Windows主机的系统性能信息,这个要求远程Windows的网络设置为经典模式,而且防火墙允许你使用WMI查询。
还有一种可以通过SNMP协议获取远程服务器的系统性能信息,这需要远程服务器安装好SNMP协议,并且在服务中打开SNMP服务。
无论是采取哪种方式获取远程服务器的系统性能信息,你都要有足够的网络权限,而且对方提供资源配合你的监测。
使用WMI协议监测的话,Windows2000以后的版本都在服务中安装好了Windows Management Instrumentation服务,你可以通过Windows自带的工具wbemtest检查远程服务器的WMI通道是否畅通;
如果使用SNMP协议监测,需要你手工安装一下Windows组件中的“简单网络管理协议”,不知道Windows7及以后的版本是否在安装系统的时候就已经安装好。
具体代码的话,网上搜索得到。MSDN里面可以查到WMI监测的代码,用C++、VB、C#都能实现,用C进行SNMP监测,还需要你下载一个SNMP++库。
冉航--小虾米 2010-11-29
  • 打赏
  • 举报
回复
WMI可以用于C语言吗?


谁有 获得 远程 机器 上 某进程 的 CPU 使用率 和 内存使用 的 C代码。
ForestDB 2010-11-28
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 gosyzj 的回复:]

WMI就可以了
[/Quote]
就是这个。^^
liutengfeigo 2010-11-28
  • 打赏
  • 举报
回复
API,MSDN
gosyzj 2010-11-27
  • 打赏
  • 举报
回复
WMI就可以了
starryeyed 2010-11-22
  • 打赏
  • 举报
回复
用远程过程调用不就行了
majy 2010-11-22
  • 打赏
  • 举报
回复
搞成服务器/客户机模式,在远程机上做个服务器监控机器情况,你的客户机不断的去刷数据
冉航--小虾米 2010-11-22
  • 打赏
  • 举报
回复
哦。 我也是这么想的。我想的是 把监测程序 装在本地机,然后以电子邮件的形式将CPU占用报告发送出去。

照样可以远程看(通过邮件)。但是老板说让这样整。
zhutianjin4355255 2010-11-22
  • 打赏
  • 举报
回复
PS TOP
「已注销」 2010-11-22
  • 打赏
  • 举报
回复
这个只能从本地获得,然后再socket发到无端吧。。
ForestDB 2010-11-22
  • 打赏
  • 举报
回复
依稀记得有这样的API的,如果是Windows平台下的话,可以MSDN下;Windows带的性能监视器也可以监视远端机器的性能,靠的应该是这些API。
冉航--小虾米 2010-11-22
  • 打赏
  • 举报
回复
starryeyed有远程过程调用吗?

我的意思是说,老板让监控程序不能安装在本地机器上,要装在远程机器上。本地机不能再装任何其他程序。


majy 你说弄成服务器客户模式,那还不是要在本地机器上装客户端监控程序,然后刷新远程服务器数据。那这样违背了

本地机不能再装任何其他程序。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧