WEB开发网
开发学院软件开发VC 《系统飞狐》系列软件中的“系统监视器”开发详解... 阅读

《系统飞狐》系列软件中的“系统监视器”开发详解

 2010-06-27 20:40:40 来源:WEB开发网   
核心提示:自2001年开发系统飞狐系列软件以来,系统飞狐软件只进行过三次升级,《系统飞狐》系列软件中的“系统监视器”开发详解,现在由于要做毕业设计,更加没有时间来对整个软件,系统的各种主要的参数相对应在注册表中的值如下面的代码所示,不一一详细解说,现把整个系统中一个软件——“系统监视器&rdq

自2001年开发系统飞狐系列软件以来,系统飞狐软件只进行过三次升级,现在由于要做毕业设计,更加没有时间来对整个软件,现把整个系统中一个软件——“系统监视器”的源代码拿出来共享,恳请大家指正,希望大家一起把它做得更好.该系统目前支持只支持Window9x,开发平台为VC++6.0,软件界面如图一所示,熟悉windows操作系统的朋友们都知道注册表在windows操作系统中核心地位,系统的许多设置和操作都保存在注册表中,比如添加删除功能、系统的所有设置(桌面、图标、系统文件夹,系统自动运行程序等等)都可以在注册表中找到相应的值,修改这些东西都会对操作系统产生重大的影响,详情可以参照系统飞狐软件。

系统监视器能监视系统采用实时的曲线记录当前操作系统的CPU使用率、核心线程个数、磁盘的高速缓存、内存的大小及使用情况,通过实时的曲线变化反应当前系统的运行特征,这在当前的系统优化设置软件中并不多见!

图一. 软件界面

软件主要是根据注册表中"HKEY_DYN_DATA, PerfStats"下面的值的实时的变化获得当前系统的各种特征值,通过VC++定时器对采集这些数据处理后得到当前的变化值。系统的各种主要的参数相对应在注册表中的值如下面的代码所示,不一一详细解说。以CPU使用率和线程的个数的监视原理作为例子跟大家解说一下基本原理,这里用到了比较多的Wins32 API函数.

DWORD dwDataSize;
DWORD dwType;
// starting the counter
if ( RegOpenKeyEx( HKEY_DYN_DATA,
          "PerfStats\\StartStat",
          0,
          KEY_ALL_ACCESS,
          &hkey ) != ERROR_SUCCESS
         )
return FALSE;
//CPU使用率的获得
dwDataSize=sizeof(DWORD);
RegQueryValueEx( hkey,
         "KERNEL\\CPUUsage",
         NULL,&dwType,
         (LPBYTE)&dwCpuUsage,
         &dwDataSize );
RegCloseKey(hkey);
//线程个数的获得
RegQueryValueEx( hkey,
         "KERNEL\\Threads",
         NULL,
         &dwType,
         (LPBYTE)&dwThreadUsage,
         &dwDataSize );
RegCloseKey(hkey);
// geting current counter''s value
if ( RegOpenKeyEx( HKEY_DYN_DATA, "PerfStats\\StatData", 0,KEY_READ, &hkey ) != ERROR_SUCCESS)
return FALSE;
dwDataSize=sizeof(DWORD);
RegQueryValueEx( hkey,
        "KERNEL\\CPUUsage",
        NULL,
        &dwType,
        (LPBYTE)&dwCpuUsage,
        &dwDataSize );//CPU的获得

RegQueryValueEx( hkey,
         "KERNEL\\Threads",
         NULL,&dwType,
         (LPBYTE)&dwThreadUsage,
         &dwDataSize );
//线程的获得 SetTimer(1,500,NULL); //定时器

1 2  下一页

Tags:系统 飞狐 系列

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接