无法在Windows 2008服务器中获取产品ID

时间:2012-01-04 10:52:56

标签: c# windows windows-server-2008

我想使用Windows机器的ProductId,所以我写了这段代码 但是在Windows Server 2008上运行时,此代码无法从注册表中获取ProductId 当我访问注册表时,ProductId就在Registry

string[] names = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion").GetValueNames();
foreach (string s in names)
{
  listBox1.Items.Add(s);
}

2 个答案:

答案 0 :(得分:1)

我发现了这种情况发生的原因。这是因为你的程序是32位的,你的系统是64位的。 32位程序访问注册表的32位部分,并且该密钥不存在于32位部分中,该部分位于:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion

以64位编译程序,它将起作用。

答案 1 :(得分:0)

确保运行此代码的帐户具有从注册表(或至少在注册表中的位置)读取的权限。