HKLM \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows NT \ CurrentVersion \ ProductId не найден, запущенное 32-битное приложение на 64-битной Windows - PullRequest
1 голос
/ 07 сентября 2010

Как заголовок на самом деле. При поиске в regedit ключ-значение существует, но ключ Wow6432 (HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows NT \ CurrentVersion) не имеет этого ключа. Это означает, что 32-разрядное приложение не работает в моей 64-разрядной версии Windows ... что не так, разве 32-разрядное приложение не должно работать без изменений? Или это один случай, когда 32-битные приложения должны быть настроены для работы на 64-битной Windows?

1 Ответ

7 голосов
/ 07 сентября 2010

Приложения действительно не должны напрямую обращаться к этому значению реестра. Лучший способ получить это значение - использовать WMI для получения свойства SerialNumber класса Win32_OperatingSystem . Это прекрасно работает с 32-битным приложением, работающим на Win64.

В качестве альтернативы можно использовать флаг KEY_WOW64_64KEY при открытии раздела реестра (не работает в Windows 2000.)

...