我试了一下,原来读取盘序列号(是物理序列号,不是硬盘扇区上的序列号)在win7下的确不能用了,即使用管理员权限也不行,可能的原因
1.系统API变化了(原来是用CreateFile+DeviceIoControl来得到的)
2.原来的程序支持的是IDE或SCSI,而现在的是SATA且我用了AHCI方式
于是我重新研究了一下,发现用WMI方式仍得到(原来也用过,只是效率低而放弃)
有关WMI的编程可参考:
http://www.codeguru.com/Cpp/W-P/system/misc/article.php/c5675
(我的程序较长,就不贴了,我也是按它改的)
类名:Win32_DiskDrive或Win32_PhysicalMedia都有SerialNumber字段,它就是硬盘的是物理序列号
1.系统API变化了(原来是用CreateFile+DeviceIoControl来得到的)
2.原来的程序支持的是IDE或SCSI,而现在的是SATA且我用了AHCI方式
于是我重新研究了一下,发现用WMI方式仍得到(原来也用过,只是效率低而放弃)
有关WMI的编程可参考:
http://www.codeguru.com/Cpp/W-P/system/misc/article.php/c5675
(我的程序较长,就不贴了,我也是按它改的)
类名:Win32_DiskDrive或Win32_PhysicalMedia都有SerialNumber字段,它就是硬盘的是物理序列号