2010-10-06 5 views
1

Ive fait une clé dans HKEY_LOCAL_MACHINE \ Software \ MyAppName (avec regedit (ive rebootet)), mais quand j'essaie de tous les lister "MyAppName" ne montre pas ... :(tout indices?Accéder à une clé dans le registre Windows LOCAL_MACHINE

rkey = Registry.LocalMachine.OpenSubKey("Software"); 
foreach (string subkey in rkey.GetSubKeyNames()) 
{ 
WriteToLogFile("subkey: " + subkey); 
} 
+0

Où est le code qui crée la clé « MyAppName »? –

Répondre

5

Je vais appliquer mes pouvoirs de débogage psychiques, et devinez que vous avez (a) un système d'exploitation 64 bits, et (b) Visual studio 2010.

Par défaut, Lorsque vous créez un nouveau projet exécutable dans VS2010, il définit les options de projet à construire pour la plate-forme x86 (les versions précédentes de Visual Studio ciblaient "Any Platform", ce qui correspondait au code x86 sur un système d'exploitation 32 bits). sur un Système d'exploitation 64 bits. Mais cela a causé d'autres maux de tête, alors ils changed the default dans VS2010.)

Sur un système d'exploitation 64 bits, les applications 32 bits ont their own virtualized copy of HKLM\Software. MS l'a fait pour des raisons de compatibilité, afin que les applications 32 bits ne piétinent pas les paramètres des applications 64 bits. Ainsi, lorsque votre application 32 bits recherche HKLM \ Software, elle reçoit en fait HKLM \ Wow6432Node \ Software.

Quatre solutions faciles pour cela:

  • Laissez-nous votre demande en 32 bits, mais explicitly request the 64-bit Registry. C'est probablement la solution la plus simple.
  • Quand vous allez dans Regedit, créez votre clé sous HKLM \ Wow6432Node \ Software à la place.
  • Si vous créez la clé de Registre à partir d'un programme d'installation, utilisez un programme d'installation 32 bits. Ensuite, il écrira à ce qu'il voit comme HKLM \ Software, qui est vraiment HKLM \ Wow6432Node \ Software.
  • modifier vos options de projet pour cibler « toute plate-forme » (dans les options du projet> Construire onglet). Assurez-vous de le définir pour le débogage et la libération.
+0

Tes pouvoirs psychiques sont meilleurs que les miens ... impressionnants. –

+0

Vos pouvoirs de débogage psychique étaient sur place! – Jason94

0

ne pas être Nit difficile mais l'emplacement réel est HKLM \ SOFTWARE \ Wow6432Node. Tout le reste Joe a répondu était sur place.

Questions connexes