1

レジストリキーを使用して、マシンのインストール済みフォルダーからXMLファイルのパスにアクセスしています。私のマシンには32ビットOSが搭載されています。だから私は使っています

using (RegistryKey pRegKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Folder\subfolder\key"))
{
    if (pRegKey == null)
    {
        return;
    } 
    else
        // get path

しかし、64ビットOSで例外ケースを処理していないため、64ビットマシンで実行するとエラーが表示されます。

どうすれば処理できますか?

4

1 に答える 1

2

アプリが32ビットで、32ビットと64ビットの両方のOSにインストールする場合は、次を使用します。

string regPath = string.Format(@"SOFTWARE\{0}AppName\Folder\subfolder\key", 
                      Environment.Is64BitProcess ? @"Wow6432Node\" : string.Empty());

using (RegistryKey pRegKey = Registry.LocalMachine.OpenSubKey(regPath))
        {
             .....
于 2013-01-21T09:30:47.690 に答える