如何获得硬盘的序列号?

qiu_sj 2003-10-09 09:40:22
我想获得硬盘的序列号 用edit显示出来?
...全文
16 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
WuLoveXue 2003-10-09
  • 打赏
  • 举报
回复
GetVolumeInformation
xdljf 2003-10-09
  • 打赏
  • 举报
回复
function mGetVolumeID(DriveChar: string): string;
var
OldErrorMode: Integer;
NotUsed, VolFlags: DWORD;
Buf: array [0..MAX_PATH] of Char;
SerialArray:array[0..0] of Dword;
begin
OldErrorMode := SetErrorMode(SEM_FAILCRITICALERRORS);
try
Buf[0] := #$00;
if GetVolumeInformation(PChar(DriveChar + ':\'), Buf, DWORD(sizeof(Buf)),
@Serialarray, NotUsed, VolFlags, nil, 0) then

SetString(Result, Buf, StrLen(Buf))
else Result := '';
if DriveChar < 'a' then
begin
Result := AnsiUpperCaseFileName(Result);
result:=result+' '+(format('[%x]',[serialarray[0]]));
end
else
Result := AnsiLowerCaseFileName(Result);
Result := Format('[%s]',[Result]);
finally
SetErrorMode(OldErrorMode);
end;
end;
Alanwn 2003-10-09
  • 打赏
  • 举报
回复
这个问题不是前几天有人问过吗?
mxk19791116 2003-10-09
  • 打赏
  • 举报
回复
取得硬盘序列号。
function tform1.GetHDSerialNumber: LongInt;
{$IFDEF WIN32}
var
pdw : pDWord;
mc, fl : dword;
{$ENDIF}
begin
{$IfDef WIN32}
New(pdw);
GetVolumeInformation('c:\',nil,0,pdw,mc,fl,nil,0);
Result := pdw^;
dispose(pdw);
{$ELSE}
Result := GetWinFlags;
{$ENDIF}
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text:=inttostr(gethdserialnumber);
end;
IORILI 2003-10-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;
qiu_sj 2003-10-09
  • 打赏
  • 举报
回复
up

5,388

社区成员

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

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