ホームページ > バックエンド開発 > C++ > 32 ビット アプリケーションはどのようにして 64 ビット Windows レジストリにアクセスできますか?

32 ビット アプリケーションはどのようにして 64 ビット Windows レジストリにアクセスできますか?

Barbara Streisand
リリース: 2025-01-16 19:12:13
オリジナル
661 人が閲覧しました

How Can a 32-bit Application Access the 64-bit Windows Registry?

32 ビット アプリケーションから 64 ビット レジストリを読み取る

32 ビット アプリケーションが 64 ビット Windows システムで実行されている場合、HKEY_LOCAL_MACHINESoftwareWow6432Node の下にあるレジストリ キーにのみアクセスできます。ただし、場合によっては、64 ビット レジストリへのアクセスが必要になります。

解決策:

.NET Framework 4.x 以降の使用:

.NET Framework 4.x 以降では RegistryView 列挙が提供され、64 ビットおよび 32 ビットのレジストリ キーに直接アクセスできます。その方法は次のとおりです:

64 ビット レジストリにアクセスします:

<code class="language-csharp">using Microsoft.Win32;

RegistryKey localKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
// 对64位注册表执行操作</code>
ログイン後にコピー

32 ビット レジストリにアクセスします:

<code class="language-csharp">RegistryKey localKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32);
// 对32位注册表执行操作</code>
ログイン後にコピー

代替案:

64 ビットと 32 ビットの両方のレジストリ キーにアクセスする必要がある場合は、次の方法を使用できます:

<code class="language-csharp">// 获取64位和32位节点的所有注册表值
var mergedValues = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64).GetValues()
    .Concat(RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).GetValues());

// 获取64位和32位节点的所有注册表项
var mergedKeys = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64).GetSubKeyNames()
    .Concat(RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).GetSubKeyNames());</code>
ログイン後にコピー

注:

  • Windows の WOW64 サブシステム (64 ビット システム上で 32 ビット操作をエミュレートする) のおかげで、64 ビット レジストリの読み取りが可能です。
  • Windows 7 では、32 ビット コード バージョンでは、実際の値に関係なく、RegisteredOrganization に対して常に「Microsoft」が返されるというバグがあります。
  • 32 ビット バージョンの Windows では、WOW6432Node サブツリーは存在しません。

以上が32 ビット アプリケーションはどのようにして 64 ビット Windows レジストリにアクセスできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート