如何获得S.M.A.R.T。来自磁盘的信息?

How to get S.M.A.R.T. info from disks?

我尝试了在 Google 中找到的代码,但没有任何效果,在大多数情况下它甚至无法编译(缺少单位、未声明的数据类型等)。 我终于找到了一些看起来完整但显示“句柄无效”错误的东西: http://rsdn.org/article/delphi/SMART.xml 您可以从此处下载该文件: http://rsdn.org/article/delphi/smart/smart.zip

函数有问题function OpenSMART(DrvNum:Byte): THandle;

hSMARTIOCTL:=CreateFile(PChar('\.\PhysicalDrive'+inttostr(DrvNum)),GENERIC_READ or GENERIC_WRITE,FILE_SHARE_READ or FILE_SHARE_WRITE,nil,OPEN_EXISTING,0,0);
result:= hSMARTIOCTL;

如何修复它或在哪里可以找到工作示例?

我使用 Delphi 7 Pro 和 Delphi 10.3。

好的,需要 运行 作为管理员。然后就可以了。