我正在使用软件的硬盘ID来检查真实用户是否在使用该软件。对于IDE类型的硬盘,我使用GetIdeSerialNumber过程获取id。
但在SATA驱动器的情况下,它将id显示为空白。
然后在SATA驱动器的情况下,我使用卷id作为唯一id。
但当系统格式化时,卷id将发生变化
现在我想知道我使用的是哪一个硬盘,以及如何在Delphi7中获得SATA驱动器的硬盘id?
编辑:根据客户端规范,软件需要锁定到硬件,相关ID为
- MAC地址
- HD id(SATA或IDE)
- 控制器ID(这是驱动软件所研究硬件的电机,ID是唯一的)
客户端已经接受了如果系统更改,则认证层将失败,但我们已经获得了将软件锁定到硬件的许可。。
所以我想知道如何获得SATA ID
WMI是检索硬盘驱动器序列号的最佳选择,尽管不支持旧版本的Windows(95和98)。
我建议您使用卷序列号。它与硬件无关。它将绑定到Windows的安装,而不是物理硬盘。这很有道理,应该足够好了。
请注意,如果用户重新安装Windows或其他还原情况,则必须重新激活,因此需要留出一些余地。这是最难实现的部分。当然,这就是使用多个ID的原因。您允许一个或多个更改,只是不允许所有更改,而不需要重新激活。