用于获得硬盘物理信息的类

介绍:

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

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版本吧?

本文配套源码

时间: 2016-11-04

用于获得硬盘物理信息的类的相关文章

封装用于解析NSDate的便利的类

封装用于解析NSDate的便利的类 此类可以从NSDate中解析出年份,月份,日期,时,分,秒,毫秒,足够用来做好多事情了,现提供源码如下: 以下是核心的类: TimeInfo.h 与 TimeInfo.m // // TimeInfo.h // ShowTime // // Created by YouXianMing on 14-10-16. // Copyright (c) 2014年 YouXianMing. All rights reserved. // #import <Founda

php实现用于验证所有类型的信用卡类

 这篇文章主要介绍了php实现用于验证所有类型的信用卡类,实例分析了信用卡类的实现原理与相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php实现用于验证所有类型的信用卡类.分享给大家供大家参考.具体如下: 这个php类比较完整,可以用于验证各种不同的信用卡,针对信用卡的卡号的通用规则进行了验证,同时对不同类型的信用卡进行了针对性的识别. 代码接受一个信用卡号码和有效日期,如果两者都有效,则返回TRUE,否则返回FALSE. 本插件接受以下参数: $number

uri-联系人信息工具类,提示路径不对?我是照着系统源码写的路径

问题描述 联系人信息工具类,提示路径不对?我是照着系统源码写的路径 package com.example.mobilesafe.utils; import java.util.ArrayList; import java.util.List; import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import android.net.Uri;

c++-文件的读写,会将类对象的数据成员写入文件中。能将文件中的信息读入类对象的对应属性中。

问题描述 文件的读写,会将类对象的数据成员写入文件中.能将文件中的信息读入类对象的对应属性中. 情况一:无get,set,无<< >>重载函数的情况下如何将类对象的各个数据成员写入某个文件中(提示:可以在print函数中写代码). 情况二:当程序包含get,set函数而无<< >>重载函数时,如何将类对象的数据成员写入文件中. 情况三:当程序包含<< >>重载函数时,如何将类对象的数据成员写入文件中. 解决方案 大神在哪里,求,求大神

遗传算法或二维ostu-求 用于图像分割的二维最大类间方差法 源程序

问题描述 求 用于图像分割的二维最大类间方差法 源程序 用于图像分割的二维最大类间方差法 源程序 或者结合遗传算法的ostu图像分割程序 解决方案 这种纯学术的算法,一般程序员是不会去写的.你可能要去找一些学术型的网站.或者论坛看看有没有你想要的东东.

HDD Regenerator修复硬盘物理坏道使用指南

HDD Regenerator 唯一可以修复硬盘物理坏道的工具,它并不是简单的屏蔽坏道,它会真正的恢复. HDD Regenerator v1.71英文版下载地址:http://www.ithov.com/soft/41522.shtml HDD Regenerator v1.71绿色中文版下载地址:http://www.ithov.com/soft/118801.shtml 制作启动光盘 下载程序解压后运行其中的HDD Regenerator 1.61.exe,运行程序后单击regenerat

C#获取硬盘健康状况信息

问题描述 请问一下,C#如何获取简单的硬盘健康信息呢?比如HDtune里有重新分配扇区数量和当前待分配扇区数量这两项.在hdtune里有一些基本信息是打开立马能看到的,不用一步步检查搜索磁盘坏道.C#里该如何获取这些健康信息呢?有没有介绍这方面的资料,谢谢. 解决方案

php实现用于验证所有类型的信用卡类_php技巧

本文实例讲述了php实现用于验证所有类型的信用卡类.分享给大家供大家参考.具体如下: 这个php类比较完整,可以用于验证各种不同的信用卡,针对信用卡的卡号的通用规则进行了验证,同时对不同类型的信用卡进行了针对性的识别. 代码接受一个信用卡号码和有效日期,如果两者都有效,则返回TRUE,否则返回FALSE. 本插件接受以下参数: $number 表示信用卡号码的一个字符串 $expiry 信用卡有效日期,采用07/12或0712这样的格式 <?php // Plug-in 32: Validate

[C#] 常用工具类——应用程序属性信息访问类

using System; using System.Collections.Generic; using System.Text; using System.Reflection; namespace Utils { /// <summary> /// <para> </para> /// 常用工具类--应用程序属性信息访问类 /// <para> -------------------------------------------</para&g