如何读出硬盘的系列号???(100分)

  • 主题发起人 主题发起人 ChengDi
  • 开始时间 开始时间
C

ChengDi

Unregistered / Unconfirmed
GUEST, unregistred user!
; 如何在Delphi3 或 4 中读出硬盘的系列号???注意,不是格式化后产生的系列号。
而是厂家的系列号。通常写在硬盘上的那个。
 
; 不知读出的是否符合你的要求。写在硬盘上的那个是什么意思?是不是每个物

理硬盘就有一个出厂系列号?

var
SerialNum : pdword;
a, b : dword;
Buffer : array [0..255] of char;
begin
if GetVolumeInformation('c:/', Buffer, SizeOf(Buffer), SerialNum, a, b, nil, 0) then
Label1.Caption := IntToStr(SerialNum^);
end;
 
我给你发一个过去,你看看有用没有
 
是不是贴在硬盘上的条码标签上的系列号? 他可与硬盘里面的东西无关
 
我想Chengdi需要的是硬盘内部的系列号, 就象主板在
BIOS中的序列号一样, 不过我也希望知道如何读出来.
 
seasky :
把你的方法( 硬盘内部的系列号 主板的) 拿出来大家看看
 
你有发现什么软件或系统中能读到你说的这个系列号吗?
如果有,说一个出来参考一下,否则,没有办法的!
 
找厂家的硬盘管理程序
 
来自提问者
对读取硬盘系列号问题的补充:
1.不是用 GetVolumeInformation 读出的那个"SerialNum"
2.Hwinfo 4.2 这个软件可以读出来.和我所见过的昆腾硬盘上写的系列号一致.

 
如果在NT4.0下,可以都注册表:
HKEY_LOCAL_MACHINE/HARDWARE/DESCRIPTION/System/MultifunctionAdapter
下用数字命名的目录的最后一个下面有DiskController子目录,下面的以数字命名
的目录对应硬盘控制器,下面还有DiskPeripheral子目录,这个目录下还有以数字
命名的子目录,对应各磁盘,下面的Identifier项值对应磁盘的SN.每次NT启动时都
从新填写这个值,所以基本可以保证使用安全.我的一个程序就是用这种方法做的.
95下好象也应该有,但具体路径没有考证过.
下面是我的机器上的例子:
HKEY_LOCAL_MACHINE/HARDWARE/DESCRIPTION/System/MultifunctionAdapter/
2/DiskController/0/DiskPeripheral/0
^ ^ ^
这是多功能卡的 这是第一个磁盘 这是第一个磁盘
磁盘控制器编号 控制器

下有键名叫Identifier,类型为字符串,值3d06c81b-00000000-A
 
鼓励一下, :)
 
后退
顶部