中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual C++ > 文件系统
一个获得硬盘物理信息的类
作者:未知 时间:2005-07-20 14:21 出处:VC知识库 责编:chinaitpower
              摘要:一个获得硬盘物理信息的类

一个获得硬盘物理信息的类
作者:广西北流中学160班 聂华闻

下载本文示例源代码

介绍:
有很多时候我需要知道机器的一些物理信息(比如激活技术),所以我就利用放高考假的时间,封装了一个可以获得硬盘的物理信息的类,方便大家。此类在我的机器上测试效果如下:



CGetMachineInfo类简介

类名: CGetMachineInfo
类中的一些要说明的函数:
功能
int ReadPhysicalDriveInNT (void) 在NT内核系统下读取硬盘的物理信息
int ReadDrivePortsInWin9X (void) 在9X内核系统下读取硬盘的物理信息
int ReadIdeDriveAsScsiDriveInNT (void) 读入NT系统下的SCSI硬盘的物理信息
BOOL ReturnInfo(int drive, DWORD diskdata [256]) 收集磁盘物理信息主函数
char *ConvertToString (DWORD, int , int )
把整型变量转换为字符串
CGetMachineInfo(void); 类的构造函数,用于区分系统内核然后自动开始收集信息
类中的一些要说明的变量:
变量说明
CString str_DN_Modol 硬盘的出厂序号
CString str_DN_Serial 驱动器的连续序号
CString str_DN_ControllerRevision 硬盘驱动版本
CString str_HardDeskSize 硬盘的大小(bytes)
CString str_HardDeskBufferSize 硬盘缓存大小(bytes)
CString str_HardDeskType 硬盘类型
CString str_Controller 说明硬盘是主动盘还是辅动盘
CString str_HardDesk_Form 说明所取的信息来源于电脑上的第几个硬盘

使用CGetMachineInfo库:

我使用了一个基于对话框的程序测试了这个类,我在对话框的初始化函数里构造了这个对象,因为类的构造函数会自动收集信息的所以构造了一个类变量后我们就可以直接的访问它所取得的信息就可以了。代码如下:

BOOL CHardDeskInfoDlg::OnInitDialog() 
{
CDialog::OnInitDialog(); CGetMachineInfo m_Info; //构造这个类的变量
SetDlgItmText(IDC_HARDDESK_ID,m_Info.str_DN_Modol);//直接访问它收集到的信息
SetDlgItemText(IDC_STATIC_SERIAL,m_Info.str_DN_Serial);
SetDlgItemText(IDC_STATIC_CR,m_Info.str_DN_ControllerRevision);
SetDlgItemText(IDC_HARDDESK_SIZE,m_Info.str_HardDeskSize+" bytes");
SetDlgItemText(IDC_BUFFER_SIZE,m_Info.str_HardDeskBufferSize+" bytes");
SetDlgItemText(IDC_HARDDESK_TYPE,m_Info.str_HardDeskType);
SetDlgItemText(IDC_STATIC_Controller,m_Info.str_Controller);
......// 

return TRUE; // 除非设置了控件的焦点,否则返回 TRUE
}

结尾:

这个类是很容易使用的,详细的大家可以看源代码(匆促中也许会有错,请各位哥姐多包含)。

测试程序编译通过 VC++ 7.0,类可以用于...大概5.0以上所有的VC版本吧?

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有