0

レジストリにアクセスするレガシー アプリケーションがあります。32 ビット アプリケーションであるため、HKEY_LOCAL_MACHINE\Software を参照すると、レジストリ仮想化を通じて Windows 7 のレジストリにアクセスします。 私の質問は、レジストリ仮想化を経由せずにレジストリに「通常どおり」アクセスするアプリケーションをコンパイルするために、Visual Studio のどの設定を変更する必要があるかということです。

4

3 に答える 3

1

Registry Virtualization ページをよく読むと、仮想化が 64 ビット Windows に限定されていないことがわかります。32 ビット プロセスのみが仮想化されるとのみ記載されています。ただし、仮想化は 32 ビットと 64 ビットの両方の Vista 以降で行われます。したがって、質問のタイトルと x64 タグは少し誤解を招く可能性があります。

あなたの質問に答えるために、同じページには次のように書かれています:

そのため、実行レベルを指定するマニフェスト ファイルを実行可能ファイルに追加することで、仮想化を無効にすることができます。Visual Studio 2005 でこれを行う方法については、少なくとも Microsoft KB 記事があります: http://support.microsoft.com/kb/944276

于 2010-03-30T20:34:22.073 に答える
0

解決策は、レガシー アプリケーションをコンパイルして x64 をターゲットにすることでした。x64 を明示的に対象とするアプリケーションは、レジストリ仮想化の対象にはなりません。

于 2010-04-15T20:26:01.123 に答える
0

使用しない理由:

Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\...");
return (string)key.GetValue("blah");

customtrust.config ファイルにレジストリへのアクセスを追加します。

それともWindows 7では機能しませんか?

于 2010-03-30T15:49:00.327 に答える