0

私はセキュリティ目的で追加registry keyしていました。XP オペレーティング システムでwindows applicationは問題なく動作しますが、アプリケーションをWindows 7 OS システム (64 ビット)にインストールすると、4 ~ 5 日後にアプリケーションが reg キーを見つけられません。HKEY_LOCAL_MACHINE\SOFTWARE

私のアプリケーションは、システムにレジストリ キーを追加するように再度要求しました。HKEY_LOCAL_MACHINE\SOFTWAREWindows 7 OS 64 ビットでソフトウェアのレジストリ キーを削除または削除する方法がわかりません。

C#.Net アプリでレジストリ キーを追加するには、以下のコードを使用しました。

// Create an instance of HKEY_LOCAL_MACHINE registry key
RegistryKey parentKey = Registry.LocalMachine;
// Open the SOFTWARE registry sub key under the HKEY_LOCAL_MACHINE parent key
  RegistryKey softwareKey = parentKey.OpenSubKey("SOFTWARE", true);
  // Create a DaveOnC# registry sub key under the SOFTWARE key
  RegistryKey subKey = softwareKey.CreateSubKey("MySoftWareRegKey");
  subKey.SetValue("Name", encryptedMac, RegistryValueKind.String);

     subKey.Close();
     softwareKey.Close();
     parentKey.Close();

繰り返しますが、Windows 7 64ビットシステムの場所でno error has been generated in application at running time数日後(4〜5日かもしれません) 、アプリケーションを実行するために再度追加する必要がありました。my application couldn't find reg key

したがって、私の質問は、Windows 7 OS at に Reg Key を永続的に追加する方法HKEY_LOCAL_MACHINE\SOFTWAREです。

提案や回答は大歓迎です。前もって感謝します!!!

4

1 に答える 1

1

これはレジストリの仮想化に関連していると思われます。32 ビットの対話型プロセス (レジストリ仮想化はサービスまたは 64 ビット プロセスには適用されません) には、Windows 7 でこのレジストリ設定を作成する権限がない可能性があります。そのリンク。そのリンクに記載されているように、Reg.exe コマンドライン ユーティリティを FLAGS オプションと共に使用して、任意のレジストリ キーの仮想化フラグの状態を照会できます。

しばらくすると消える理由がわかりません。おそらく、別のユーザーでチェックしているのか、別の仮想化ポリシーが適用されているのでしょうか? しかし、本当の解決策は、可能であれば管理者権限でプログラムを実行して、キーを適切に書き込めるようにすることです。

EDIT : あなたのコメントに応えて、HKEY_LOCAL_MACHINE\Software\Wow6432Nodeは HKEY_LOCAL_MACHINE\Software に相当する 32 ビットです (ただし、32 ビット アプリケーションはこのリダイレクトを認識しません)。したがって、これは 32 ビット プログラムの通常の動作です。レジストリ キーを確認するために使用しているツールは何ですか - リダイレクトが表示されていないと思われますか?

于 2012-10-26T16:44:44.433 に答える