微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何获得独特的机器签名没有WMI?

我知道一个问题已经被问及为机器生成一个唯一的ID,但是我的问题稍有不同。

我想知道是否有其他方法(API调用?)获取硬件信息,而不是使用WMI。 我从MSDN了解到WMI是在Win2000中引入的,所以它似乎不能在Win98中使用。 我有一个应用程序,即使在Win98上运行(我知道它很烂,但你能做什么?),并仍然掌握硬件信息。

找出用户模式崩溃转储的cpu模型

我已经做了几次许可项目。 对于硬盘序列号使用:

private static extern long GetVolume@R_401_4045@ion(string PathName,StringBuilder VolumeNameBuffer,UInt32 VolumeNameSize,ref UInt32 VolumeSerialNumber,ref UInt32 MaximumComponentLength,ref UInt32 FileSystemFlags,StringBuilder FileSystemNameBuffer,UInt32 FileSystemNameSize);

使用该函数返回的VolumeSerialNumber 。

另外,您可能已经考虑过使用Windows产品ID(位于HKEY_LOCAL_MACHInesOFTWAREMicrosoftwindows NTCurrentVersionDigitalProductId )。 要小心,大量的Windows XP用户有盗版副本,并共享相同的产品密钥。

查看WinAPI的kernel32和user32库。 它有EnumdisplayDevices , GetLogicalDrives , GlobalMemoryStatus , GetVolume@R_401_4045@ion等各种好吃的东西。我喜欢使用PInvoke来浏览API,因为它给了我C#的包装代码 – 但是MSDN在Windows SDK中也可以。

@ novatrust关于硬盘序列的答案是一个好的答案 – 但可以结合更多。 我已经提供了GetVolume@R_401_4045@ion API链接以上,但是一个简单的Google应该也可以。

您可以组合不同的硬件信息来创建唯一的密钥。

例如,cpu ID,MAC地址等等。您检索它们,将它们组合,加密它们,并且您具有该机器的硬件设置的唯一表示。

尝试使用Google搜索主题:如何阅读硬件信息。

从CodeGo.net,我可以看到有一个非常有用的职位: 如何获取硬件信息(cpu ID,主板信息,硬盘序列,系统信息,…) 。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐