A. 怎样在vc++中获得硬盘的序列号
vc++中获得硬盘的序列号可以参考如下代码:圆键
//MyDiskInfo.h头文件
#pragma once
class MyDiskInfo
{
public:
MyDiskInfo(void);
public:
~MyDiskInfo(void);
public:
int GetDiskInfo(int driver=0);
char szModelNumber[64];
char szSerialNumber[64];
};
/橘凯巧/MyDiskInfo.cpp文件
// MyDiskInfo.cpp: implementation of the CMyDiskInfo class.
//
#include "stdafx.h"
#include "MyDiskInfo.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
const WORD IDE_ATAPI_IDENTIFY = 0xA1; // 读取ATAPI设备的命令
const WORD IDE_ATA_IDENTIFY = 0xEC; // 读取ATA设备的命令
#define _WIN32_WINNT 0x0400
#include "winioctl.h"
//孙雹#include "NTDDSCSI.h"
// Construction/Destruction
MyDiskInfo::MyDiskInfo(void)
{
}
MyDiskInfo::~MyDiskInfo(void)
{
}
BOOL __fastcall DoIdentify( HANDLE hPhysicalDriveIOCTL,
PSENDCMDINPARAMS pSCIP,
PSENDCMDOUTPARAMS pSCOP,
BYTE btIDCmd,
BYTE btDriveNum,
PDWORD pdwBytesReturned)
{
pSCIP->cBufferSize = IDENTIFY_BUFFER_SIZE;
pSCIP->irDriveRegs.bFeaturesReg = 0;
pSCIP->irDriveRegs.bSectorCountReg = 1;
pSCIP->irDriveRegs.bSectorNumberReg = 1;
pSCIP->irDriveRegs.bCylLowReg = 0;
pSCIP->irDriveRegs.bCylHighReg = 0;
pSCIP->irDriveRegs.bDriveHeadReg = (btDriveNum & 1) ? 0xB0 : 0xA0;
pSCIP->irDriveRegs.bCommandReg = btIDCmd;
pSCIP->bDriveNumber = btDriveNum;
pSCIP->cBufferSize = IDENTIFY_BUFFER_SIZE;
return DeviceIoControl( hPhysicalDriveIOCTL,
SMART_RCV_DRIVE_DATA,
(LPVOID)pSCIP,
sizeof(SENDCMDINPARAMS) - 1,
(LPVOID)pSCOP,
sizeof(SENDCMDOUTPARAMS) + IDENTIFY_BUFFER_SIZE - 1,
pdwBytesReturned, NULL);
}
char *__fastcall ConvertToString(DWORD dwDiskData[256], int nFirstIndex, int nLastIndex)
{
static char szResBuf[1024];
char ss[256];
int nIndex = 0;
int nPosition = 0;
for(nIndex = nFirstIndex; nIndex <= nLastIndex; nIndex++)
{
ss[nPosition] = (char)(dwDiskData[nIndex] / 256);
nPosition++;
// Get low BYTE for 2nd character
ss[nPosition] = (char)(dwDiskData[nIndex] % 256);
nPosition++;
}
// End the string
ss[nPosition] = '\0';
int i, index=0;
for(i=0; i <nPosition; i++)
{
if(ss[i]==0 || ss[i]==32) continue;
szResBuf[index]=ss[i];
index++;
}
szResBuf[index]=0;
return szResBuf;
}
int MyDiskInfo::GetDiskInfo(int driver)
{
char sFilePath[64]={0};
sprintf(sFilePath,"\\\\.\\PHYSICALDRIVE%d",driver);//modify by lonkil 2008-07-13
HANDLE hFile = INVALID_HANDLE_VALUE;
hFile = ::CreateFile(sFilePath,
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, OPEN_EXISTING,
0, NULL);
if (hFile == INVALID_HANDLE_VALUE) return -1;
DWORD dwBytesReturned;
GETVERSIONINPARAMS gvopVersionParams;
DeviceIoControl(hFile,
SMART_GET_VERSION,
NULL,
0,
&gvopVersionParams,
sizeof(gvopVersionParams),
&dwBytesReturned, NULL);
if(gvopVersionParams.bIDEDeviceMap <= 0) return -2;
// IDE or ATAPI IDENTIFY cmd
int btIDCmd = 0;
SENDCMDINPARAMS InParams;
int nDrive =0;
btIDCmd = (gvopVersionParams.bIDEDeviceMap >> nDrive & 0x10) ? IDE_ATAPI_IDENTIFY : IDE_ATA_IDENTIFY;
// 输出参数
BYTE btIDOutCmd[sizeof(SENDCMDOUTPARAMS) + IDENTIFY_BUFFER_SIZE - 1];
if(DoIdentify(hFile,
&InParams,
(PSENDCMDOUTPARAMS)btIDOutCmd,
(BYTE)btIDCmd,
(BYTE)nDrive, &dwBytesReturned) == FALSE) return -3;
::CloseHandle(hFile);
DWORD dwDiskData[256];
USHORT *pIDSector; // 对应结构IDSECTOR,见头文件
pIDSector = (USHORT*)((SENDCMDOUTPARAMS*)btIDOutCmd)->bBuffer;
for(int i=0; i < 256; i++) dwDiskData[i] = pIDSector[i];
// 取系列号
ZeroMemory(szSerialNumber, sizeof(szSerialNumber));
strcpy(szSerialNumber, ConvertToString(dwDiskData, 10, 19));
// 取模型号
ZeroMemory(szModelNumber, sizeof(szModelNumber));
strcpy(szModelNumber, ConvertToString(dwDiskData, 27, 46));
return 0;
}
B. 如何看电脑硬盘序列号
问题一:如何查看电脑硬盘序列号 第一步
单击【开始】→【运行...】,输入cmd
第二步
输入diskpart,按回车键
第三步
输入list disk,按回车键
第四步
输入select disk 0,按回车键
第五步
输入detail disk,按回车键
第六步
弹出的信息中第二行就是硬盘序列号
问题二:如何查看电脑的硬盘序列号 如果是直接看硬盘的话,就是MDL后面的字母和数字就是序列号。
如果在系统中看:
计算机--右键--管理---设备管理器。右边。。磁盘驱动器,点开,看。
使用第三方软件:金山装机精灵。里面有个查看硬件。
问题三:联想台式电脑硬盘序列号怎么看 方法如下:
一、打开“我的电脑”点击鼠标右键,依次选择管理――设备管理器――磁盘驱动器。
二、硬盘标签上有标注,SN:xxxxxxxxxxxx。
三、网络硬盘序列号读取工具,下载安装后点击读取即可。
四、安装电脑管家进行查询也可以。
五、拨打8008108888-2咨询产品工程师。
问题四:电脑硬盘序列号查看方法? 第一步
单击【开始】→【运行...】,输入cmd
第二步
输入diskpart,按回车键
第三步
输入list disk,按回车键
第四步
输入select disk 0,按回车键
第五步
输入detail disk,按回车键
第六步
弹出的信息中第二行就是硬盘序列号
问题五尺丛:硬盘序列号的查看方法 ..
进系统 点我的电脑 右键属性 里找、设备 里有
问题六:电脑硬盘序列号怎么查询 硬件型号检测工具 (图)
硬盘上标有
S/N:号码
问题七:如何查看电脑硬盘序列号 1、购买硬盘时,乎困让通常在硬盘上面的标签上都会有硬盘序列号。
2、对于笔记本,硬盘都是安装在岁局笔记本内部的,这时,可以下载“EVEREST Ultimate”来读取硬盘序列号。下载该软件后,解压缩,运行Everest.exe。
问题八:怎样查看电脑硬盘序列号 在正面标签上S/N一栏。
问题九:如何查看电脑硬盘序列号 点击开始,在搜索中输入cmd,回车,打开命令窗口
在命令行输入diskpart,启动diskpart程序,我们就是要利用这个程序来查看磁盘ID,该程序属于系统程序的一部分,大多数电脑都有的
启动了diskpart程序后,接着输入list disk,也就是把电脑上的所有磁盘都罗列出来,因为我的电脑上只有一个磁盘,因此就出现了磁盘0
接着输入select disk 0 ,也就是选择刚刚罗列出来的磁盘序号
选好要查看的磁盘后,接着输入detail disk,硬盘的信息将会全部展现出来,其中有一项就是磁盘ID,到此任务完成
问题十:怎么用Dos查看硬盘序列号 lz你好,参见下面的图示,dispart -> list volume,有问题再追问吧。
C. 如何获得硬盘序列号
1用硬盘序列号读取软件可以查到,
2
DOS命令行操作:
使用diskpart命令,Win+R键运行cmd,进入命令行界面:
1.diskpart
2.list disk 查看有几块硬盘
3.select disk 0 选择第一块硬盘
4.detail disk 显示选择的硬盘详细信息,显示的第一行是硬盘型号,第二行ID是序列号。
5.若有多块硬盘,返回第3步继续下面操作。
D. 硬盘序列号最简单查询方法
电脑硬盘序列号最简单的查询方法如下:
操作环境:联想(Lenovo)E76X,window7系统等。
1、鼠标右键“计算机”,选择“属性”。
如何选择硬盘?
1、固态硬盘也分为常见的为2.5寸的固态硬盘和M.2接口的长条硬盘,目前主流的是M.2的长条硬盘,一般支持NVME协议,读写速度一般在2000M每秒,高的能达到5000M每秒。而SATA口的固态硬盘上限也才500M每秒。有接近7倍的差距,所以买硬盘时一定认准M.2接口,支持NVME协议的硬盘。
如果不支持NVME协议,M.2接口但走SATA总线,速度还是最高500M每秒,所以要同时满足M.2接口和支持NVME协议才行。
2、目前还有“PCIe4.0固态硬盘”,形态和M.2接口的形态是一样的,不过速度最高可达7000M每秒,但需要CPU和主板的支持,好在目竖慧吵前英特尔13代,还有AMD主流主板,都支碧敬持PCIe4.0固态硬盘了。
3、PCIe接口的固态硬盘,不太常见,速度上对比M.2接口的固态硬盘也没有什么优势,还要占用一个PCIe插槽,所以不必太余侍关注。
E. 电脑硬盘的序列号是什么
磁盘ID和硬盘序列号不是一回事。