レジストリキーの削除を発行します
-
27-10-2019 - |
質問
レジストリキーを削除しようとしていますが、これまでのところ、正常と思われるコードを試しました。
RegistryKey delete = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options");
delete.DeleteSubKeyTree("MyPaintApp");
delete.Close();
しかし、エラーが発生します。
Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
私は自分の問題をグーグルで検索し、StackOverFlowを検索し、いくつかのソリューションを適用しましたが、すべてが私が使用しているのと同じ方法を使用しているようですので、私はうんざりしているので、それを手伝ってくれることを願っています。
編集:申し訳ありませんが、RegistryKeyパスでLocalMachineの代わりにCurrentUserを使用しました。それが問題でした。
解決
のドキュメント OpenSubKey
州:
返品値
タイプ:Microsoft.Win32.RegistryKey
サブキーは要求され、操作が失敗した場合はnull。
したがって、キーを開くと失敗したようです。おそらくそれが存在しないからです:
指定されたサブキーが見つからない場合、nullが返されます。
私のwin7 compで、 Image File Execution Options
サブキーは存在しません。
しかし、あなたがその部分を修正しても、それはまだ失敗します。の過負荷 OpenSubKey
あなたが使用していることは次のように文書化されています:
読み取り専用としてサブキーを取得します。
したがって、使用する必要があります OpenSubKey(path,true)
, 、@lasseespeholtがお勧めするように。
他のヒント
使用してみてください Registry.CurrentUser.DeleteSubKeyTree(fullSubKeyPath);
.
所属していません StackOverflow