我试图获得物理磁盘序列号使用C#和WMI
var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia"); foreach (ManagementObject mo in searcher.Get()) { Console.WriteLine("Serial: {0}",mo["SerialNumber"]); }
此代码显示所有的硬盘驱动器和闪存可移动棒的序列号,但无法在Windows XP上获得闪存可移动磁盘,并为可移动磁盘给我空,但正确获得硬盘序列号。 任何想法有什么不对?
我的想法是,Windows XP需要更新,任何人都知道什么是更新需要? 我需要特定的更新,以包括它与我的软件。
为什么会发生这种情况?
使用MapViewOfFile,指针最终走出内存空间
Mediawiki身份validation与Windows域的凭据
Windows 10 WebView InvokeScript不起作用
在HTML表格中指定字体和大小
Windows 10 Linux子系统 – Python – string到电脑剪贴板
无法在Windows中安装Pillow for Python 3.x – Zlib是必需的
Java在Windows中工作正常,但BlueJ IDE的Java失败
如何在windows上configurationapache和mode_wsgi进行本地django开发
PHPExcel – 如何提高价值?
FindWindow怎么find一个EnumChildWindows没有的窗口?
据我所知,即使代码正确完成,也不能保证存储设备会报告序列号。 在过去,我在使用WMI的时候,在一些许可代码上工作,并且在各种环境中遇到类似的问题。 根据我的经验,使用低级别的API调用会更加可靠(但是它的编码/测试要多得多),但即使如此,您也不能保证获得序列号。
一些可能遇到问题的环境(不是完整的列表):
Windows XP
虚拟机
SATA驱动器
各种其他设备,表现为自己的硬盘,但实际上不是
等等
你可以看看Code Project上的这篇文章 ,看看它是否对你更好。
如果您正在尝试使用某种授权解决方案,您可能需要考虑获取更多的硬件信息,以便在缺少一条信息的情况下,您还有其他需要解决的问题。 这也是值得阅读有关欺骗硬盘序列号 。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。