注册表项处理64位操作系统

时间:2013-01-21 09:26:05

标签: c# .net registry key

我正在使用注册表项从我的机器的已安装文件夹中访问XML文件的路径。 我的机器有32位操作系统。所以我正在使用

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

但是当我在64位机器上运行它时显示错误,因为我没有处理64位操作系统的异常情况。

我该如何处理?

1 个答案:

答案 0 :(得分:2)

如果您的应用是32位且您想在32位和64位操作系统上安装它,请使用:

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

using (RegistryKey pRegKey = Registry.LocalMachine.OpenSubKey(regPath))
        {
             .....