在64位机器上读取Windows Key的问题

时间:2012-07-21 15:23:59

标签: c# windows

我想用简单的c#应用程序从注册表中读取windows密钥。但是在x64机器上我只接受BBBBB-BBBBB-BBBBB-BBBBB-BBBBB作为关键,这是错误的...我该如何解决这个问题呢?

RegistryKey key = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
RegistryKey subkey = key.OpenSubKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion");

谢谢!

2 个答案:

答案 0 :(得分:3)

根据制作CD密钥恢复软件和Web SiteWindows7Forums thread,产品ID的所有B的存在表示MAK(多次激活密钥)密钥。

来自第一个链接:

  

B表示cd密钥未存储在您的计算机中,因此无法恢复。这可能是由于以下几个原因造成的:

     

MAK用于激活;
  SLMGR用于从Windows注册表中删除密钥,
  或者您正在运行盗版Windows。

来自第二个链接

  

当管理员设置许多带有PC的PC时,这是一个大问题   批量许可证密钥。因为每个人都可以提取VLC密钥并使用   它用于其他安装。因为这个原因是VLC键   激活后自动从注册表中删除。之后   这个所有关键查找器只显示“不可用”或   BBBBB-BBBBB-BBBBB-BBBBB-BBBBB。使用命令行:slmgr -dli你   可以获得“部分产品密钥” - 产品的最后5个字符   键。此“部分产品密钥”以加密形式保存在   证书文件“tokens.dat”   (C:\ WINDOWS \ ServiceProfiles \网络服务\应用程序数据\漫游\微软\ SoftwareProtectionPlatform \的tokens.dat)。   每个担心自己的钥匙都被盗的人也可以手动删除   注册表中的产品密钥与此命令行:slmgr -cpky   (cpky = clear product key =从注册表中删除产品密钥)

答案 1 :(得分:0)

快速网络搜索显示许多人遇到同样的问题。如果DigitalProductID都是B,那么一个解决方案似乎是获取DigitalProductID4值。