これについて多くのサイトがあります。私は今、約6時間にわたって異なるアイデアをテストしてきました。私は64ビットレジストリを変更するために32ビットのアプリケーションを取得しようとしています。 HKLM \ Software \ Microsoft \ Windows \ Current Version \ Installer \ UserData \にアクセス許可を設定する必要があります。理由が不明な場合は、権限が正しくないとソフトウェアがエラーをスローするためです。ここでC#32bitアプリ64bitレジストリ
は、私はプログラムが前localMachineX64にキーを変更するにWOW6432NODEでテストキーに罰金働いていた
static bool SetRegistryPermissions(string hkLmKey, string userAccount)
{
//this will force the app to see the 64bit registry instead of being redirected
RegistryKey localMachineX64View = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
RegistryKey rk = localMachineX64View.OpenSubKey(hkLmKey, true);
//This redirects to the Wow6432Node in the registry
//RegistryKey rk = Registry.LocalMachine.OpenSubKey(hkLmKey, true);
をしようとしているものです。 OpenSubKeyでデバッグするときにセキュリティ例外が発生するようになりました。
ご迷惑をおかけして申し訳ございませんが、ご了承ください。
P.S. C#でNTの権限を書く良い情報を含んでいる書籍の提案は、おまけになります。
あなたは、これはあなたの問題への間違った解決策であることを認識していますか?標準ユーザーはHKLMに書き込むべきではありません。 –
これが「間違った」解決策であれば、どのようにこの問題を修正しますか?私は、それを修正してユーザーがそれをやることを防ぐために問題が発生したときにのみ使用しています。 –