我想使用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);
}
答案 0 :(得分:1)
我发现了这种情况发生的原因。这是因为你的程序是32位的,你的系统是64位的。 32位程序访问注册表的32位部分,并且该密钥不存在于32位部分中,该部分位于:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion
以64位编译程序,它将起作用。
答案 1 :(得分:0)
确保运行此代码的帐户具有从注册表(或至少在注册表中的位置)读取的权限。