win10下怎么获取硬盘序列号

hontim 2017-06-05 03:56:53
hDevice := CreateFile('\\.\PhysicalDrive0', GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);

上面这段代码在win10下不好用了
...全文
1538 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
daigua1987 2021-04-13
  • 打赏
  • 举报
回复

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;
我WIN10电脑,用这个获取
My_Love 2020-04-12
  • 打赏
  • 举报
回复
这段代码在win10下不好用了
Playmaster 2017-06-23
  • 打赏
  • 举报
回复
mark, 获取硬盘序列号。
jjpweb 2017-06-21
  • 打赏
  • 举报
回复
二楼这方法简单好用, 以前cpuid都是用网上的汇编代码获取,多核的还来回变。
bwsoft1 2017-06-20
  • 打赏
  • 举报
回复
收费的可以找我qq:171833017,可以应用于各种流行的开发语言,比如Delphi, C++Builder, C#, Visual C++, Visual Basic, Visual Basic.NET, PowerBuilder等 1.支持windows2000,xp及以上系统,支持64位操作系统,支持U盘/移动硬盘,不支持win98及以下操作系统。 2.仅需1个dll文件。 3.在win7/win8等系统下,无需管理员权限。 4.支持根据盘符获取硬盘的物理序号,支持获取磁盘类型。 5.支持获取硬盘温度、smart信息。 下载地址http://www.dxmylove.com/download/jyharddisk.zip
  • 打赏
  • 举报
回复
二三楼其实都是正解。 二楼是直接给出的代码,三楼则是给了个度娘手里有源码的函数名。
mabaoyes 2017-06-07
  • 打赏
  • 举报
回复
通过WMI获取网卡MAC地址、硬盘序列号、主板序列号、CPU ID、BIOS序列号 Delphi通过WMI获取系统信息 uses ActiveX, ComObj; function GetWMIProperty(WMIType, WMIProperty: string): string; var Wmi, Objs, Obj: OleVariant; Enum: IEnumVariant; C: Cardinal; begin Wmi:= CreateOleObject('WbemScripting.SWbemLocator'); Objs := Wmi.ConnectServer('.','root/cimv2').ExecQuery('Select * from Win32_' + WMIType); Enum := IEnumVariant(IUnknown(Objs._NewEnum)); Enum.Reset; Enum.Next(1, Obj, C); Obj := Obj.Properties_.Item(WMIProperty, 0).Value; Result := Obj; end; // 获取硬盘序列号 ShowMessage(GetWMIProperty('DiskDrive', 'PNPDeviceID')); // 获取BISO序列号 ShowMessage(GetWMIProperty('BIOS', 'SerialNumber')); // 获取网卡MAC地址 ShowMessage(GetWMIProperty('NetworkAdapter', 'MACAddress')); // 获取网卡序列号 ShowMessage(GetWMIProperty('NetworkAdapter', 'PNPDeviceID')); // 获取CPU序列号 ShowMessage(GetWMIProperty('Processor', 'ProcessorId')); 也可以用同样的方法获得任意感兴趣的系统信息,比如正在运行的进程、账户信息等等。 更多WMI的信息参考: http://www.microsoft.com/whdc/system/pnppwr/wmi/default.mspx http://msdn2.microsoft.com/en-us/library/aa394572.aspx
lyhoo163 2017-06-07
  • 打赏
  • 举报
回复
GetWMIProperty('DiskDrive','SerialNumber') // 获得第一块硬盘的设备标示

5,927

社区成员

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

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