C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: 64ビットOSからのレジストリ取得


(過去ログ 70 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■40700 / inTopicNo.1)  64ビットOSからのレジストリ取得
  
□投稿者/ らんぺるーる (104回)-(2009/09/01(Tue) 18:37:27)

分類:[.NET 全般] 

現在以下のように、レジストリから値を取得しております。
ところが、64ビットOSからレジストリを取得する場合には
「Wow6432Node」というキーが「SOFTWARE」の前に追加されるため、
以下のコードでは取得できなくて困っております。
条件分岐を使用せずに、32ビットOS,64ビットOSから値が取得可能なようにする方法はないでしょうか。

            Dim regkey As Microsoft.Win32.RegistryKey = _
                Microsoft.Win32.Registry.LocalMachine.OpenSubKey("キーの値を入れています。", False)
            'キーが存在しないときはNothingが返される
            If (regkey Is Nothing) Then Return "デフォルト値"

            '文字列を読み込む
            Dim stringValue As String = CType(regkey.GetValue("読込む値を入れています。", "デフォルト値を入れています。"), String)

引用返信 編集キー/
■40701 / inTopicNo.2)  Re[1]: 64ビットOSからのレジストリ取得
□投稿者/ らんぺるーる (105回)-(2009/09/01(Tue) 18:55:39)
詳細コンパイルオプションでターゲットCPUを"anyCPU"から"x86"に変更したらうまく取得できるようになりました。

作成したアプリケーションは32ビット用アプリケーションであるとしたため、
リダイレクト機能でパスを読み替えてくれたということでしょうか…。

一応レジストリの取得については解決できましたが、
この対処で何かしらの問題が発生しないかアドバイスをいただけないでしょうか。
引用返信 編集キー/
■40789 / inTopicNo.3)  Re[2]: 64ビットOSからのレジストリ取得
□投稿者/ らんぺるーる (107回)-(2009/09/03(Thu) 10:13:33)
動作確認をしたところ、上記対処で新たな問題は発生しませんでした。
解決ができたので、クローズにさせていただきます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -