Я не могу получить доступ к определенным подразделам в записи в реестре - PullRequest
1 голос
/ 26 мая 2010

Я пытаюсь добраться до HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ GameUX \, но единственный ключ, возвращаемый в C #, - это MachineSettings - хотя есть дополнительные подразделы, в том числе Games и несколько ключей, названных для разных пользователей. SIDs. Как я могу получить доступ к этим другим ключам? Даже стандартная учетная запись пользователя может читать содержимое как игр, так и собственный SID этой учетной записи (при просмотре в regedit) ...

1 Ответ

5 голосов
/ 28 мая 2010

Таким образом, проблема была связана с запуском 32-разрядного приложения в 64-разрядной среде Windows. 64-разрядные песочницы для Windows 32-разрядное содержимое (именно поэтому существует C: \ Program Files (x86)) таким образом, чтобы оно было прозрачным для приложений. 32-разрядные приложения, использующие реестр, обращаются к изолированному кусту внутри узла HKLM \ WOW6423, поэтому я не увидел ожидаемого результата при запросе ключа внутри HKLM.

К счастью, .NET 4.0 (представленный в VS.NET 2010 и его аналогах Express Edition) включает в себя сверхлегкую функцию, которая позволяет 32-разрядному приложению просматривать и использовать 64-разрядный реестр (и наоборот).

Ответ здесь: Создать 64-битный ключ реестра (не WOW64) из 32-битного приложения

...