создать двоичную запись в реестре программно в C # - PullRequest
1 голос
/ 23 ноября 2011

Я автоматически устанавливаю свойства dcom приложения программно в c #. Когда я вручную изменяю настройку через службы компонентов, я вижу следующую запись в реестре. Но мне нужно сделать это программно. Вот что я сделал для создания этой записи в реестре:

  1. Откройте Службы компонентов -> Dcom -> найдите приложение
  2. щелчок правой кнопкой мыши и свойства -> вкладка "Безопасность" -> Разрешения на запуск и активацию -> Пользовательские -> Редактировать и добавить BuiltIn \ IIS_IUSRs

Вот результат:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{0B902D3B-6517-4EBD-B61B-6F5830A77578}]
@="TestClient.AccBkrcn"
"LaunchPermission"=hex:01,00,04,80,74,00,00,00,84,00,00,00,00,00,00,00,14,00,\
  00,00,02,00,60,00,04,00,00,00,00,00,14,00,1f,00,00,00,01,01,00,00,00,00,00,\
  05,12,00,00,00,00,00,18,00,1f,00,00,00,01,02,00,00,00,00,00,05,20,00,00,00,\
  20,02,00,00,00,00,18,00,03,00,00,00,01,02,00,00,00,00,00,05,20,00,00,00,38,\
  02,00,00,00,00,14,00,1f,00,00,00,01,01,00,00,00,00,00,05,04,00,00,00,01,02,\
  00,00,00,00,00,05,20,00,00,00,20,02,00,00,01,02,00,00,00,00,00,05,20,00,00,\
  00,20,02,00,00

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Вы можете использовать методы Microsoft.Win32.Registry , особенно SetValue для выполнения этой задачи.Используя метод SetValue, массивы Byte [] автоматически сохраняются в двоичном виде.

0 голосов
/ 23 ноября 2011

Если вы просто хотите записать указанное выше значение в реестр с помощью C #, вы можете использовать класс RegistryKey в пространстве имен Microsoft.Win32 :

    RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Classes\AppID\{0B902D3B-6517-4EBD-B61B-6F5830A77578", true);
    key.SetValue("TestClient.AccBkrcn", new byte[] { 01,00,04,80,74,00,00,00,84,00,00,00,00,00,00,00,14,00,
  00,00,02,00,60,00,04,00,00,00,00,00,14,00,1f,00,00,00,01,01,00,00,00,00,00,
  05,12,00,00,00,00,00,18,00,1f,00,00,00,01,02,00,00,00,00,00,05,20,00,00,00,
  20,02,00,00,00,00,18,00,03,00,00,00,01,02,00,00,00,00,00,05,20,00,00,00,38,
  02,00,00,00,00,14,00,1f,00,00,00,01,01,00,00,00,00,00,05,04,00,00,00,01,02,
  00,00,00,00,00,05,20,00,00,00,20,02,00,00,01,02,00,00,00,00,00,05,20,00,00,
  00,20,02,00,00 });

РЕДАКТИРОВАТЬ:

Как указывает Брент, вам нужно ставить перед каждым числом префикс 0x, иначе это не сработает.

...