0

我正在使用我的软件的硬盘 ID 来检查真实用户是否正在使用该软件。对于 IDE 类型的硬盘,我使用过程 GetIdeSerialNumber 获取 id。

但如果是 SATA 驱动器,它会将 id 设为空白。

然后在 SATA 驱动器的情况下,我使用卷 ID 作为唯一 ID。

但是当系统格式化时,volume id 会改变

现在我想知道我正在使用哪个硬盘驱动器,以及如何在delphi 7中获取SATA驱动器的硬盘ID?

编辑:根据客户规格的软件需要锁定到硬件,相关的 ID 是

  1. MAC地址
  2. 高清 ID(SATA 或 IDE)
  3. 控制器ID(这是驱动软件开发的硬件的电机,ID是唯一的)

客户端已接受如果系统更改,则身份验证层将失败,但我们已获准将软件锁定到硬件。

所以我想知道如何获取 SATA ID

4

1 回答 1

3

WMI是检索硬盘序列号的最佳选择,但不支持旧版本的 Windows(95 和 98)。

我建议您使用卷序列号。它与硬件无关。它将与 Windows 的安装而非物理硬盘驱动器相关联。这很有意义,应该足够好。

请注意,如果用户重新安装 Windows 或其他一些还原情况,则必须重新激活,因此您需要留出一些余地。这是最难实现的部分。当然,这就是使用多个 ID 的原因。您允许一个或多个更改,而不是全部更改,而无需重新激活。

于 2012-01-12T16:56:59.383 回答