【问题标题】:Hard disk id of SATA drivesSATA驱动器的硬盘ID
【发布时间】:2012-02-08 12:03:50
【问题描述】:

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

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

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

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

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

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

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

客户端已经接受,如果系统改变,认证层将失败, 但我们已获准将软件锁定到硬件..

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

【问题讨论】:

  • 啊。请不要将软件安装绑定到特定的硬盘驱动器。该软件可以安装在 RAID 卷上。你将如何处理?
  • 或者当驱动器发生故障并且必须更换时,然后从备份中恢复所有内容?
  • @all,已通知客户,如果我们更改 HD 或使用其他 PC,则会产生问题,但他们希望将软件锁定到该软件所在的系统已安装。
  • 顺便说一句,请确保您使用多个标识符。硬盘序列号本身是不够的,往往不是唯一的。我看到序列号是 '0000...0000' 。

标签: delphi delphi-7 serial-number sata hard-drive


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-07-18
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 2012-08-07
    • 2018-01-26
    • 2017-01-27
    • 2012-11-03
    • 2020-04-25
    相关资源
    最近更新 更多