J'essaie d'accéder à HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ GameUX \, mais la seule sous-clé retournée en C# est MachineSettings - même s'il y a sont des sous-clés supplémentaires, y compris les jeux et plusieurs clés nommées pour différents SID de l'utilisateur. Comment puis-je accéder à ces autres clés? Même un compte d'utilisateur standard peut lire le contenu des jeux et le propre SID de ce compte (en regardant dans regedit) ...Je ne peux pas accéder à certaines sous-clés dans une entrée du registre
Répondre
Donc le problème était lié à l'exécution d'une application 32 bits dans un environnement Windows 64 bits. Contenu du contenu 32 bits des sandbox Windows 64 bits (ce qui explique pourquoi C: \ Program Files (x86)) est transparent pour les applications. Les applications 32 bits qui utilisent le registre accèdent à une ruche en mode bac à sable dans HKLM \ WOW6423Node, ce qui explique pourquoi je ne voyais pas le résultat attendu lors de l'interrogation d'une clé dans HKLM.
Heureusement, .NET 4.0 (introduit avec VS.NET 2010 et ses homologues Express Edition) inclut une fonction super facile qui permet à une application 32 bits de voir et d'utiliser le registre 64 bits (et vice versa).
réponse est ici: Create 64 bit registry key (non-WOW64) from a 32 bit application
J'ai passé des heures sur celui-ci. Quelle fonction dans .NET 4.0? –
Désolé pour ça! Ajout d'un lien vers la réponse – ClairelyClaire
Quel code utilisez-vous? Et notez que regedit s'exécute en tant que compte administrateur (vous devriez obtenir une invite UAC). –
Right - L'exécution de l'application dans Visual C# express ou comme compilé et «en tant qu'administrateur» pose toujours le même problème. Le code est: http://pastebin.com/dEXa1EqD GameIDs [0], s'il lisait correctement les sous-clés, serait égal à Jeux, pas à MachineSettings (ce qui est ce qu'il est actuellement). – ClairelyClaire
Étrange, ce code fonctionne pour moi (à la fois en tant qu'administrateur et en tant qu'utilisateur régulier). Je suis sur Win7 x64 sans uac ... Quelle est la version de .NET? –