如何在64位的Windows 8.1中使用C#.NET获取硬盘序列号?

3

我正在使用:

private String HDDId()
{            
  String serialNo = string.Empty;
  DriveListEx diskInfo = new DriveListEx();
  diskInfo.Load();            
  return serialNo = diskInfo[0].SerialNumber;
} 

但是在64位的Windows 8.1中不起作用,显示格式错误。我不知道该如何解决这个问题。

1个回答

0

我猜测你正在使用一个外部的DLL(可能来自这里,尽管你没有具体说明:http://www.codeproject.com/Articles/16941/Get-Physical-HDD-Serial-Number-without-WMI),它使用本地代码。

该页面发布的DLL仅适用于32位。如果您想在64位上使用它(正如文章中的备注所说),您需要使用正确的包含/库文件夹将其编译为64位。

引用该页面:

此版本适用于Windows XP 32位系统。如果您需要它用于Vista或64位系统,则应在构建时选择正确的包含和库文件夹,并且不应使用release.zip存档中的其他DLL,因为它们是32位的Windows XP。


1
...或者为 C# 项目设置目标为 x86。 - i486
没错,但那只是解决问题的权宜之计,而不是真正的解决方案 :-) - Jcl
嗨Jcl,谢谢你的回答。但请问我应该怎么做来解决它们呢? - user1859269
好的,将你正在使用的库编译成64位。我不知道这个库或者它是如何编译的,只是假设你在使用它。 - Jcl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接