Невозможно получить идентификатор продукта в Windows 2008 Server - PullRequest
0 голосов
/ 04 января 2012

Я хочу использовать ProductId Windows-машины, поэтому я написал этот код, но этот код не может получить ProductId из реестра при запуске на Windows Server 2008, когда я посетил реестр, ProductId находится в реестре

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

Ответы [ 2 ]

1 голос
/ 22 июня 2012

Я выяснил причину, по которой это происходит. Это потому, что ваша программа 32-битная, а ваша система 64-битная. 32-разрядные программы обращаются к 32-разрядной части реестра, и этот ключ отсутствует в 32-разрядной части, которая находится в:

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

Скомпилируйте вашу программу в 64-битной версии, и она будет работать.

0 голосов
/ 04 января 2012

Убедитесь, что учетная запись, под которой работает этот код, имеет права на чтение из реестра (или хотя бы этого расположения в реестре).

...