谁帮我看下DELPHI代码,获取硬盘序列号

这个代码有点问题,放在硬盘C盘和D盘下都可以,可是放在E盘、F盘都不行,会出现“Rangecheckerror.”谁帮我修改一下。//取得本机硬盘序列号functionG... 这个代码有点问题,放在硬盘C盘和D盘下都可以,可是放在E盘、F盘都不行,会出现“Range check error.”
谁帮我修改一下。

//取得本机硬盘序列号
function GetHDSerialNumber: LongInt;
{$IFDEF WIN32}
var
pdw : pDWord;
mc, fl : dword;
{$ENDIF}
begin
{$IfDef WIN32}
New(pdw);
GetVolumeInformation(nil,nil,0,pdw,mc,fl,nil,0);
Result := pdw^;
dispose(pdw);
{$ELSE}
Result := GetWinFlags;
{$ENDIF}
end;
展开
 我来答
百度网友1b932d7
2009-09-27 · TA获得超过816个赞
知道小有建树答主
回答量:455
采纳率:0%
帮助的人:424万
展开全部
给你这个 这个是我用的你看看好使不

function GetVolumeID : string;
var
vVolumeNameBuffer: array[0..255]of Char;
vVolumeSerialNumber: DWORD;
vMaximumComponentLength: DWORD;
vFileSystemFlags: DWORD;
vFileSystemNameBuffer: array[0..255]of Char;
begin
if GetVolumeInformation('C:\', vVolumeNameBuffer, SizeOf(vVolumeNameBuffer),
@vVolumeSerialNumber, vMaximumComponentLength, vFileSystemFlags,
vFileSystemNameBuffer, SizeOf(vFileSystemNameBuffer)) then
begin
Result := IntToHex(vVolumeSerialNumber, 8);
end;
end;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式