如何编程读取硬盘序列号SN

如何编程读取硬盘序列号SN,第1张

硬盘序列号只能采用对硬盘控制器直接 *** 作的方式进行读取,也就是说只能

采用CPU的I/O指令 *** 作硬盘控制器,读取的方法如下面的C语言程序所示:

static int WaitIde()

{

int al;

while ((al=inp(0x1F7)) >=0x80) ;

return al;

}

static void ReadIDE()

{

int al;

int i;

WORD pw[256];

WaitIde();

outp(0x1F6,0xA0);

al = WaitIde();

if ((al&0x50)!=0x50) return;

outp(0x1F6,0xA0);

outp(0x1F7,0xEC);

al = WaitIde();

if ((al&0x58)!=0x58) return;

for (i=0;i< 256;i++)

pw[i] = inpw(0x1F0);

}

---- 上面的程序实际上读取了保存在硬盘控制器内的全部信息,而序列号只是其中

的一部分,位于上面提到的 pw[] 数组的 10 至 20 元素内,即从 &pw[10] 开始的10个WORD内,每个WORD占两个字节,共占用了20个字节。由于该序列号保存时每个WORD的高、低字节是非Intel顺序,也就是说它的高字节在前,低字节在后,所以在使用时需要将高、低字节颠倒一下,这样就能得到完整的序列号。

方法一:

1、点击打开“控制面板”。

2、点击“系统”选项卡,查看系统信息。

3、产品ID如图所示。

方法2:

1、打开“命令提示符”

2、输入“systeminfo”按Enter键。

3、如图所示

查看电脑硬盘序列号

1、点击开始,在搜索中输入cmd,回车,打开命令窗口

2、在命令行输入diskpart,启动diskpart程序,就是要利用这个程序来查看磁盘ID,该程序属于系统程序的一部分,大多数电脑都有的

3、启动了diskpart程序后,接着输入list disk,也就是把电脑上的所有磁盘都罗列出来,因为电脑上只有一个磁盘,因此就出现了磁盘0

4、接着输入select disk 0 ,也就是选择刚刚罗列出来的磁盘序号

5、选好要查看的磁盘后,接着输入detail disk,硬盘的信息将会全部展现出来,其中有一项就是磁盘ID,到此任务完成

6、然后你可以输入exit退出diskpart程序,或者直接关掉窗口就ok了。

所谓机器的机器码其实就是电脑的一些特征码,包括硬盘序列号、CPU编号、BIOS编号等等和硬件有关的编号。

你可以用在VC++中获取这些编号,并用一定的算法将他们组合后,就生成了一个机器码,用这个机器码按照一定的算法生成一个注册码,这样就对你的软件进行了保护,使得只有拥有这个机器码的机器才能安装你的软件。

获取硬盘序列号的方法如下(代码)

以驱动器C为例:

char m_Volume[256];//卷标名

char m_FileSysName[256];

DWORD m_SerialNum;//序列号

DWORD m_FileNameLength;

DWORD m_FileSysFlag;

::GetVolumeInformation("c:\\",

m_Volume,

256,

&m_SerialNum,

&m_FileNameLength,

&m_FileSysFlag,

m_FileSysName,

256);

执行该函数后,m_Volume就是卷标名字符串,m_SerialNum就是序列号

以上就是关于如何编程读取硬盘序列号SN全部的内容,包括:如何编程读取硬盘序列号SN、怎样查看电脑上的硬件序列号、VC++怎么获取计算机的机器码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9540966.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存