硬盘的序列号只能采用对硬盘控制器直接 *** 作的方式进行读取,也就是说只能
采用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++怎么获取计算机的机器码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)