在c#中以编程方式在注册表中创建二进制项
本文关键字:创建 二进制 注册表 编程 方式 | 更新日期: 2023-09-27 18:15:28
我在c#中自动设置应用程序的dcom属性。当我通过组件服务手动更改设置时,我在注册表中看到以下条目。但我需要用程序来做。我是这样在注册表中创建这个条目的:
- Open Component Services -> Dcom ->定位应用 右键单击属性->安全选项卡->启动和激活权限->自定义->编辑并添加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
您可以使用Microsoft.Win32。注册表方法,特别是SetValue
来执行此任务。使用SetValue
方法,Byte[]数组被自动存储为二进制。
如果您只是想使用c#将上面的值写入注册表,您可以使用Microsoft中的RegistryKey
类。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 });
编辑:正如Brent指出的那样,您需要在每个数字前加上0x,否则这将不起作用。