在c#中以编程方式在注册表中创建二进制

时间:2011-11-23 19:02:59

标签: c# registry dcom

我在c#中以编程方式自动设置应用的dcom属性。当我通过组件服务手动更改设置时,我在注册表中看到以下条目。但我需要以编程方式进行。 这就是我在注册表中创建此条目所做的:

  1. 打开组件服务 - > Dcom - >找到应用
  2. 右键单击和属性 - >安全标签 - >启动和激活权限 - >习惯 - >编辑并添加BuiltIn \ IIS_IUSRs
  3. 结果如下:

    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 个答案:

答案 0 :(得分:1)

您可以使用Microsoft.Win32.Registry方法,尤其是SetValue来执行此任务。使用SetValue方法,Byte []数组会自动存储为二进制文件。

答案 1 :(得分:0)

如果您只是想使用C#将上述值写入注册表,则可以使用Microsoft.Win32命名空间中的RegistryKey类:

    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,否则这将不起作用。