Question

Je tente de supprimer une clé de Registre, jusqu'à présent, j'ai essayé ce code qui semble être normal:

        RegistryKey delete = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options");
        delete.DeleteSubKeyTree("MyPaintApp");
        delete.Close();

Mais je reçois l'erreur:

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.

Je googlé mon problème et cherché stackoverflow et appliqué des solutions, mais tous semblent utiliser la même méthode que je me sers, je suis nourri et j'espère que vous pouvez me aider.

EDIT:. Je DÉSOLÉ utilisé CurrentUser au lieu de LocalMachine dans mon chemin RegistryKey, qui était le problème

Était-ce utile?

La solution

La documentation pour les Etats OpenSubKey:

Valeur de retour
Type: Microsoft.Win32.RegistryKey
La sous-clé demandé, ou null si l'opération a échoué.

ouvrant ainsi la clé semble avoir échoué. très probablement parce qu'il n'existe pas:

Si la sous-clé spécifiée ne peut pas être trouvée, NULL est renvoyée.

Sur mon Win7 comp, la sous-clé Image File Execution Options n'existe pas.


Mais même lorsque vous corrigez cette partie, ça va encore échouer. La surcharge de OpenSubKey que vous utilisez est documentée comme:

Récupère une sous-clé en lecture seule.

Vous devez utiliser OpenSubKey(path,true), comme @lasseespeholt recommande.

http://msdn.microsoft.com/en-us/library/ z9f66s0a.aspx

Autres conseils

S'il vous plaît essayer d'utiliser Registry.CurrentUser.DeleteSubKeyTree(fullSubKeyPath);.

Détails ici. RegistryKey.DeleteSubKeyTree Méthode (String)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top