📄 0504002.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title></title>
<link rel="stylesheet" type="text/css" href="../../vckbase.css">
</head>
<body>
<div align="justify">
<table border="0" width="100%" class="font" height="57">
<tr>
<td width="27%" height="6" class="bigfont" bgcolor="#B8CFE7" align="center" bordercolor="#800080">
<font color="#800080">VC知识库(五)</font>
</td>
<td width="73%" height="6" class="bigfont" bgcolor="#B8CFE7" align="center" bordercolor="#800080">
<font color="#800080">vckbase</font>
</td>
</tr>
<tr>
<td width="100%" height="4" class="header" valign="top" align="center" colspan="2">
<hr>
</td>
</tr>
<tr>
<td width="100%" height="17" class="header" valign="top" align="center" colspan="2">
<FONT color=#0000c0>
磁 盘ID 的 显 示 和 修 改</FONT>
</td>
</tr>
<tr>
<td width="100%" height="17" class="info" align="center" colspan="2">
重 庆 北 碚 西 南 师 范 大 学 物 理 系(400715) <BR>陈 昌 友
</td>
</tr>
<tr>
<td width="100%" height="22" class="font" colspan="2">
<hr>
</td>
</tr>
<tr>
<td width="100%" height="5" class="font" colspan="2">
<CENTER><FONT color=#0000c0>
</FONT>
</CENTER>
<P><FONT color=#ffffff>----</FONT> DOS4.0 以 上 的 版 本, 在 磁 盘 格 式 化 时 给 磁 盘 设
置 了 一 个 卷 系 列 号, 即 磁 盘ID, 用 作 磁 盘 的 标 识 信 息, 使 用dir 命 令 可 以 显 示 卷 系 列 号:
<P><FONT color=#ffffff>----</FONT>Volume in drive C is KSW100
<P><FONT color=#ffffff>----</FONT>Volume Serial Number is 4160 -9FE5
<P><FONT color=#ffffff>----</FONT>...
<P><FONT color=#ffffff>----</FONT>其 中 开 始 的 第 二 行 为 卷 系 列 号 显 示。 DOS 利 用 卷
系 列 号 与 驱 动 器 上 的 磁 盘 保 持 联 系, 如 果 你 用 过 Win95( 或Win98) 就 会 有 感 受, 当 你 在 使
用 某 一 张 软 磁 盘 或 光 盘 时, 你 将 其 取 走 或 是 换 了 一 张 盘,Windows 要 使 用 该 盘 时 就 会 叫 你
插 入 序 列 号 为 × × × × - × × × × 的 磁 盘, 或 者 在 读 光 盘 出 错 时 也 会 显 示 此 信 息。
<P><FONT color=#ffffff>----</FONT>由 于format 命 令 格 式 化 磁 盘 时 生 成 的 卷 系 列 号
是 一 固 定 格 式 的 随 机 数, 两 次 格 式 化 生 成 的 卷 系 列 号 相 同 的 几 率 几 乎 为 零, 因 此 一 些 商
业 软 件 或 共 享 软 件 经 常 利 用 卷 系 列 号 进 行 软 件 加 密。 比 如, 某 些 共 享 软 件 要 求 你 用C 盘 的
序 列 号 到 他 们 的 互 连 网 主 页 上 去 申 请 软 件 的 授 权 号 或 许 可 证, 有 了 授 权 号 你 才 能 安 装 该
软 件 或 是 获 得 许 可 证 后 你 才 能 使 用 该 软 件 的 所 有 功 能( 通 常 被 禁 止 的 功 能 也 是 最 关 键 的
功 能)。 如 果 你 要 将 该 软 件 安 装 于 多 台 微 机 上, 就 得 为 每 一 台 微 机 申 请 一 个 授 权 号 或 许 可
证, 或 是 你 重 新 格 式 化 硬 盘 后, 也 得 重 新 去 申 请 授 权 号 或 许 可 证。
<P><FONT color=#ffffff>----</FONT>那 么, 磁 盘 序 列 号 可 不 可 以 修 改 呢 ?
<P><FONT color=#ffffff>----</FONT>DOS 的INT 21H 中 断 的69H 功 能 号 为 我 们 提 供 了
这 样 一 个 功 能, 其 入、 出 口 参 数 如 下:
<P><IMG align=center src="../../images/0024100.jpg" width="340" height="140">
<P><FONT color=#ffffff>----</FONT>用C 语 言 的DOS 功 能 调 用 函 数dosx() 可 以 方 便 地
取 或 置 磁 盘ID 号, 用Turbo C 2.0 写 的 源 程 序 如 下: <XMP>#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<ctype.h>
main()
{int i,j;
union REGS regs; struct SREGS sregs;
unsigned char ch,tp[8],id[6];
clrscr();
printf(“\n\nPlease select one operation!");
printf(“\n 0--Get disk ID
1--Set disk ID\n");
ch=getch();
if(ch==27) return 0;
printf(“\nPlease select one disk to operate.");
printf(“\n 0--Current disk
1--disk A 2--disk B 3--disk
C ...\n");
j=getch()-48;
if(ch==49)
{printf(“\nPlease enter eight
HEX numerals(such as 1f23e35b):");
/*下面这一段程序是将输入的字符串转化成相应的
十六进制数(四字节)*/
scanf(“%s",tp);
for(i=0;i<8;i++)
if(isalpha(tp[i]))
{ tp[i]=tolower(tp[i]);
tp[i]=tp[i]-87;
}
else tp[i]=tp[i]-48;
id[5]=tp[0]*16+tp[1]; id[4]=tp[2]*16+tp[3];
id[3]=tp[4]*16+tp[5]; id[2]=tp[6]*16+tp[7];
/*-------------*/
regs.h.ah=0x69; regs.h.al=0x01;
regs.h.bl=j;
regs.x.dx=FP_OFF(id);
sregs.ds=FP_SEG(id);
intdosx(&regs,&regs,&sregs);
if(regs.x.cflag==0)
printf(“This operation is successful!");
}
else
{regs.h.ah=0x69;
regs.h.al=0x00;
regs.h.bl=j;
regs.x.dx=FP_OFF(id);
sregs.ds=FP_SEG(id);
intdosx(&regs,&regs,&sregs);
if(regs.x.cflag==0)
{printf(“\nThis disk ID is ");
printf(“%x%x-%x%x\n",
id[5],id[4],id[3],id[2]);
}
else printf(“\nTo get ID is failure.\n");
}
return 0;
}
</XMP><!--*******************************-->
</td>
</tr>
<tr>
<td width="100%" height="12" class="font" colspan="2">
</td>
</tr>
<tr>
<td width="100%" height="6" class="font" colspan="2">
</td>
</tr>
<tr>
<td width="100%" height="8" class="font" colspan="2">
</td>
</tr>
<tr>
<td width="100%" height="17" class="font" colspan="2"></td>
</tr>
</table>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -