在Delphi 7中,检索硬盘唯一序列号的方法是通过读取硬盘的ID。以下是一个示例代码,展示如何使用Delphi 7获取硬盘序列号:
function GetDiskSerialNumber: string;
var
hDrive: THandle;
dwSerialNumber: DWORD;
lpVolumeNameBuffer: array[0..MAX_PATH] of Char;
nVolumeNameSize: DWORD;
begin
Result := '';
hDrive := CreateFile(PChar('\\.\C:'), GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
if hDrive <> INVALID_HANDLE_VALUE then
begin
try
if DeviceIoControl(hDrive, IOCTL_STORAGE_GET_DEVICE_NUMBER, nil, 0,
@dwSerialNumber, SizeOf(dwSerialNumber), nil, nil) then
begin
Result := IntToHex(dwSerialNumber, 8);
end;
finally
CloseHandle(hDrive);
end;
end;
end;
这个函数会返回硬盘的序列号,但需要注意的是,这个方法只能获取当前正在运行的程序所在硬盘的序列号。如果需要获取其他硬盘的序列号,需要修改代码中的盘符。
另外,需要注意的是,这个方法可能会受到操作系统和权限的限制。在某些情况下,可能需要管理员权限才能获取硬盘序列号。
云+社区沙龙online第5期[架构演进]
云+社区沙龙online[数据工匠]
云+社区沙龙online
TVP「再定义领导力」技术管理会议
云+社区沙龙online [新技术实践]
云+社区沙龙online第5期[架构演进]
云+社区技术沙龙[第17期]
领取专属 10元无门槛券
手把手带您无忧上云