■■■请教如何获取物理硬盘的序列号?■■■

goomoo 2003-04-09 03:54:31

请教如何获取物理硬盘的序列号?

请给出可执行的代码.

...全文
39 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sophie719 2003-04-09
  • 打赏
  • 举报
回复

uses
SysUtils, Windows;

function Get_DiskSerialNo(DriveID : char) : string;
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
begin
result := '';
try
GetVolumeInformation(PChar(DriveID + ':\'),
nil, 0, @VolumeSerialNumber,
MaximumComponentLength, FileSystemFlags,
nil, 0);
result := IntToHex(HiWord(VolumeSerialNumber), 4) +
'-' + IntToHex(LoWord(VolumeSerialNumber), 4);
except
end;
end;
俗人1979 2003-04-09
  • 打赏
  • 举报
回复
获得盘符:
procedure TForm1.Button1Click(Sender: TObject);
var
ch:char;
temp:string;
Hard: array of char;
i:integer;
begin
ch:='c';
i:=1;
setlength(Hard,i);
while GetDriveType(pchar(string(temp)))<>DRIVE_CDROM do
begin
Hard[i-1]:=ch;
i:=i+1;
setlength(Hard,i);
ch:=chr(integer(ch)+1);
temp:=ch+':\';
Edit1.Text:=Edit1.Text+Hard[i-2]+',';
end;
end;
u2m 2003-04-09
  • 打赏
  • 举报
回复
type
MIDPtr = ^MIDRec;
MIDRec = Record
InfoLevel: word;
SerialNum: LongInt;
VolLabel: Packed Array [0..10] of Char;
FileSysType: Packed Array [0..7] of Char;
end;

function GetDriveSerialNum(MID: MIDPtr; drive: Word): Boolean; assembler;
asm
push DS { Just for safety, I dont think its really needed }
mov ax,440Dh { Function Get Media ID }
mov bx,drive { drive no (0-Default, 1-A ...) }
mov cx,0866h { category and minor code }
lds dx,MID { Load pointeraddr. }
call DOS3Call { Supposed to be faster than INT 21H }
jc @@err
mov al,1 { No carry so return TRUE }
jmp @@ok
@@err:
mov al,0 { Carry set so return FALSE }
@@ok:
pop DS { Restore DS, were not supposed to change it }
end;

procedure TForm1.NrBtnClick(Sender: TObject);
var
Info: MIDRec;
begin
Info.InfoLevel:=0; { Information Level }
If GetDriveSerialNum(@Info,0) then { Do something with it... }
ListBox.Items.Add(IntToStr(Info.SerialNum)+' '+Info.VolLabel);
end;

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧