Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中以编程方式在注册表中创建二进制项#_C#_Registry_Dcom - Fatal编程技术网

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

C# 在c中以编程方式在注册表中创建二进制项#,c#,registry,dcom,C#,Registry,Dcom,我正在用c#以编程方式自动设置应用程序的dcom属性。当我通过组件服务手动更改设置时,我在注册表中看到以下条目。但我需要以编程的方式来做。 这是我在注册表中创建此项时所做的操作: 打开组件服务->Dcom->查找应用程序 右键单击属性->安全选项卡->启动和激活权限->自定义 ->编辑并添加内置\IIS\U IUSRs 结果如下: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{0

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

  • 打开组件服务->Dcom->查找应用程序
  • 右键单击属性->安全选项卡->启动和激活权限->自定义 ->编辑并添加内置\IIS\U 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
    

    如果您只是想使用C#将上述值写入注册表,则可以使用命名空间中的
    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 });
    
    编辑:


    正如Brent指出的,您需要在每个数字前面加上0x,否则这将不起作用

    如果您只想使用C#将上述值写入注册表,可以使用命名空间中的
    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 });
    
    编辑:


    正如Brent指出的,您需要在每个数字前面加上0x,否则这将不起作用

    您可以使用这些方法,尤其是
    SetValue
    来执行此任务。使用
    SetValue
    方法,字节[]的数组自动存储为二进制。

    您可以使用这些方法,尤其是
    SetValue
    来执行此任务。使用
    SetValue
    方法,字节[]的数组自动存储为二进制。

    此代码不会编译,因为十六进制文本前面没有0x。大多数有效的文本被解释为八进制数,因为它们有前导零。有关整型文字语法,请参阅。此代码将不会编译,因为十六进制文字前面没有0x。大多数有效的文本被解释为八进制数,因为它们有前导零。有关整型文字语法,请参阅。