如何利用VC获得网络主机或服务器的CPU和内存使用率?就象任务管理器那样。要遵循SNMP,最好有代码示例,谢谢,急!!!
解决方案 »
- winpcap支持所有网卡吗?我的是AR5006EG
- 一个优秀的开源界面库GuiToolKit,如何找出CGuiTabbedDemo需要的库文件,删除没用的库文件,提供思路有分
- 求助:谁会修改五子棋程序???
- 如何读取web的SQL数据库里的bmp图片二进制数据并显示?
- 关于VC在打开旧工程时跳出的提示框
- 我想用HOOK获得 任意的窗口 标题,函数错在哪?
- ■■寻找VC++程序高手,有小项目合作,是高手的请进■■
- 请问关于对话框窗口的背景
- 菜鸟问个菜问题,请大虾给你答案,在线等……
- 大家帮忙分析如下代码如何出错(VC+ODBC)
- MFC初级问题!!!
- 谁能给我CPPuint的下载地址呀?谢谢阿!
BOOL GetProcessMemoryInfo(
HANDLE Process, // handle to process
PPROCESS_MEMORY_COUNTERS ppsmemCounters, // buffer
DWORD cb // size of buffer
);
下了班回去给你找找这些OID。
你这个想法当时我也有过,可是我在RFC1213 ,1157这两个相关SNMP MIB中都没有找到有这些OID的定义。我记得好像这些定义是windows的一种扩展mib。但我一直没有找到。后来我是用agent的方式在本地获取这些信息然后发往管理程序的。当然这种办法不是最佳,因为和程序的整体设计不是很好的结合。还有想请问一下搂主,你做过Set的操作吗,我Get时都是成功的,但在Set同样的OID(可读写)时却返回一个没有这样的OID的错误。
oidarray[1] := '1.3.6.1.2.1.25.5.1.1.2';
FGetTable.SendSnmp(edtCommunity.Text,
IntToStr(edtIP.ip1)+'.'+IntToStr(edtIP.ip2)+'.'+
IntToStr(edtIP.ip3)+'.'+IntToStr(edtIP.ip4),
oidarray,20);
oidarray := nil;
StatusBar.Panels.Items[0].Text :=('采集服务器的CPU,内存信息...');
oidarray[1] := '1.3.6.1.2.1.25.2.3.1.4';
oidarray[2] := '1.3.6.1.2.1.25.2.3.1.5';
oidarray[3] := '1.3.6.1.2.1.25.2.3.1.6';
FGetTable.SendSnmp(edtCommunity.Text,
IntToStr(edtIP.ip1)+'.'+IntToStr(edtIP.ip2)+'.'+
IntToStr(edtIP.ip3)+'.'+IntToStr(edtIP.ip4),
oidarray,20);
oidarray := nil;
StatusBar.Panels.Items[0].Text :=('采集服务器的硬盘信息...');
呵呵,今天长见识了,还能自己写SNMP服务器啊,我以前一般都是要求目标机器装SNMP服务并开启这个服务,然后通过那些API函数去获取客户机上相应的信息,如果自己写SNMP服务,怎么搞啊,这个我可是空白,你有相关的例子或者代码吗?还有这个自己写得SNMP服务应该需要安装到客户机上的吧?
那些OID好像也不是在某RFC上看到的,而是来自某网站的资料吧。你自己在找找吧。sevencat(七猫) 说的(包括TRAP吧),也是可行的 。不过我没有试过。
ps:实际上,我已经得到了dash提到的这些参数,就像上面我提到的我可以获得每个进程占用的内存和cpu消耗时间,可是还是不知道怎么样计算系统cpu和内存利用率
……请大家踊跃发言吧,呵呵!
注意有个IDLE PROCESS, 该进程的CPU占用时间的变化率就是CPU的空闲率。
比如1秒时间内,如果该进程的CPU时间只增加了半秒,就可以认为是50%。
呵呵,我记得当时我就是这么做的。当然,这个做法是自己琢磨的。未有官方的文档证明。期待有更完美的方法。
Type INTEGER
Units % load
Access read-only
Status unknownThe average , over the last minute , of the percentage of time that this processor was not idle.
用这个就可以得到cpu的利用率了!HOST-RESOURCES-MIB:hrSWRunPerfMemOID 1.3.6.1.2.1.25.5.1.1.2
Type KBytes
Units K bytes
Access read-only
Status unknownThe total amount of real system memory allocated to this process.
可以得到每个进程消耗的内存!