社区
其它技术问题
帖子详情
硬盘系列号
qiyousyc
2006-03-08 12:22:05
如何得到硬盘的物理系列号
IDE口的硬盘我知道如何得到
串口的硬盘要如何得到呢?
...全文
93
3
打赏
收藏
硬盘系列号
如何得到硬盘的物理系列号 IDE口的硬盘我知道如何得到 串口的硬盘要如何得到呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qiyousyc
2006-03-19
打赏
举报
回复
白检分
bm1408
2006-03-08
打赏
举报
回复
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <conio.h>
#include <string.h>
char *getascii (unsigned int in_data [], int off_start, int off_end);
void main (void)
{
unsigned int dd [256]; /* DiskData */
unsigned int dd_off; /* DiskData offset */
while (inp (0x1F7) != 0x50) /* Wait for controller not busy */
;
outp (0x1F6, 0xA0); /* Get first/second drive */
outp (0x1F7, 0xEC); /* Get drive info data */
while (inp (0x1F7) != 0x58) /* Wait for data ready */
;
for (dd_off = 0; dd_off != 256; dd_off++) /* Read "sector" */
dd [dd_off] = inpw (0x1F0);
printf ("The Serial Number Hard Disk [C] is %s", getascii (dd, 10, 19));
}
char *getascii (unsigned int in_data [], int off_start, int off_end)
{
static char ret_val [255];
int loop, loop1;
for (loop = off_start, loop1 = 0; loop <= off_end; loop++)
{
ret_val [loop1++] = (char) (in_data [loop] / 256); /* Get High byte */
ret_val [loop1++] = (char) (in_data [loop] % 256); /* Get Low byte */
}
ret_val [loop1] = ""; /* Make sure it ends in a NULL character */
return (ret_val);
}
/* 程序2: 获得逻辑盘C的序列号 */
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <dos.h>
void main(void)
{
char serial_no[10];
union REGS r;
struct SREGS s;
unsigned sno1, sno2;
r.x.ax = 0x6900;
r.h.bl = 3; /* A:=1, B:=2, C:=3 etc. */
segread(&s);
intdosx(&r, &r, &s);
if (r.x.cflag)
*serial_no = "";
else
{
sno2 = *((unsigned far *)MK_FP(s.ds, r.x.dx+2));
sno1 = *((unsigned far *)MK_FP(s.ds, r.x.dx+4));
sprintf(serial_no, "%04X-%04X
", sno1, sno2);
}
printf("The Serial Number of Login Disk [C] is %s", serial_no );
}
qiyousyc
2006-03-08
打赏
举报
回复
大哥!不是这个
是物理系列号
读取
硬盘
系列号
的代码
打开
硬盘
设备,读取
硬盘
的信息,包括
系列号
信息。
VB实现获取
硬盘
物理
系列号
在开发软件时可以用计算机的
硬盘
物理
系列号
实现注册。
获取CPU、
硬盘
、网卡信息
获取CPU
系列号
、
硬盘
系列号
、网卡MAC地址
DiskID32.dll
C#使用DISKID32.DLL读取
硬盘
序列号
LabVIEW获取
硬盘
网卡CPU等序列号.
LabVIEW中获得CPU序列号、
硬盘
序列号、BIOS版本号、网卡物理地址
其它技术问题
3,882
社区成员
9,045
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章