Создать и написать и прочитать реестр в C#

Во время установки (я использую Clickonce) я хотел бы создать реестр, мой проект на.Net 3.5 в настоящее время.

Мое приложение 32-битное, и оно может быть установлено на 32- или 64-битном компьютере, у меня есть некоторые проблемы при создании реестра.

В функции VerifyReg я создаю реестр, если их не было (Моя программа - это имя родительской ветви, которая должна находиться в разделе "Программное обеспечение" в зависимости от 32- или 64-разрядной машины.

Моя проблема в функции: CreateMoreRegistryKeys в

RegistryKey RegKeyWow64 = RegKeyMain.OpenSubKey(@"SOFTWARE\Wow6432Node", true);

У меня ошибка записи в реестр, даже если я администратор машины

Это функция, я что-то упустил во время создания и чтения?

public void VerifyReg()
 {
    string keyName = @"SOFTWARE\Myprogram";
    RegistryKey RegKeyMain = Registry.LocalMachine;
    RegistryKey skSub = null;

    skSub = RegKeyMain.OpenSubKey(keyName);
    if (skSub == null)
    {
         skSub = RegKeyMain.CreateSubKey(keyName);
    }
    CreateMoreRegistryKeys();
}
public void CreateMoreRegistryKeys()
{
    bool bIs64bits = Environment.Is64BitOperatingSystem;

    string keyName = @"SOFTWARE\Myprogram\Folder";
    RegistryKey RegKeyMain = Registry.LocalMachine;

    if (bIs64bits)
    {
      keyName = @"Myprogram\Folder";
      RegistryKey RegKeyWow64 = RegKeyMain.OpenSubKey(@"SOFTWARE\Wow6432Node", true);
      CreateRegKeyFor64or32Bits(RegKeyWow64, keyName);
    }
    else
    {
       CreateRegKeyFor64or32Bits(RegKeyMain, keyName);
    }
}

public void CreateRegKeyFor64or32Bits(RegistryKey RegKeyMain, string keyName)
{
        RegistryKey skSubWy = RegKeyMain.CreateSubKey(keyName, RegistryKeyPermissionCheck.ReadWriteSubTree);
        if (skSubWy != null)
        {
            ..Do something
        }
    }

0 ответов

Другие вопросы по тегам