我一直在使用Google,并没有出现一整天的工作解决方案。我对二进制数据类型一无所知(因为我从来没有明白地使用过它们),我正试图在注册表中向注册表写入一个二进制值。现在,我看到的是以下内容[如下所示] ...如果我尝试将该字符串作为字符串传递给WinAPI中的RegSetValueEx
,当然它出错了......我不知道我需要什么“数字”进入参数RegSetValueEx
(我尝试了一个位数组),以便在注册表中显示如下[如下所示]。我真的不知道,我的测试将随机数字放在位数组中,只是产生相应的随机“数字”,就像在注册表中可见的那样,我不知道如何将它们逻辑地“捆绑”在一起。如何将二进制数据“按原样”写入注册表(即:我只有可见的二进制数据作为字符串从注册表只有)
这里是罪魁祸首!
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Some\Registry\Location] "RegistryKey"=hex:01,00,00,00,d0,8c,9d,df,01,15,d1,11,8c,7a,00,c0,4f,c2,97,eb,\ 01,00,00,00,7b,96,8a,78,b9,cc,c1,4f,b1,35,11,01,5e,3c,25,9b,00,00,00,00,02,\ 00,00,00,00,00,10,66,00,00,00,01,00,00,20,00,00,00,22,1c,b6,ea,e3,a5,06,8b,\ 58,69,7b,89,19,b3,1f,a3,1d,d8,b7,5b,30,72,65,4b,22,41,a8,73,d1,92,bb,36,00,\ 00,00,00,0e,80,00,00,00,02,00,00,20,00,00,00,87,a0,1a,79,a7,c9,fe,7a,1b,24,\ 9a,71,5d,cf,7b,87,bc,1b,14,6e,59,96,e3,42,c6,f5,08,78,00,a6,42,3d,30,00,00,\ 00,02,0a,2a,ea,d9,49,0a,fa,48,b3,f1,e2,ae,e2,f8,42,a2,54,1e,56,dc,dd,9b,0d,\ 9b,73,41,72,54,cc,64,49,99,f1,5c,12,70,33,8e,fb,b1,31,66,df,b4,e0,02,bb,40,\ 00,00,00,13,c2,7d,88,16,af,56,ac,82,21,39,95,43,04,50,71,c2,4c,6a,44,a6,03,\ ea,32,4d,d9,f3,0f,22,2e,41,17,2e,26,11,9b,10,9d,99,60,fc,12,d2,ce,7c,1c,78,\ 6b,f0,59,23,fd,84,46,2c,58,41,ee,31,7a,f8,95,57,54
如果我在一个字符串或位阵列下面,我必须填充bitarray以使注册表输出这个[以上]时写的?或者,我怎样才能弄清楚如何做到这一点?我希望能有一个函数读取我的二进制数据字符串,并将其转换为真正的二进制格式,以提交给VB6中的RegSetValueEx函数或VB.Net或C#中的其他函数(这实际上是一个语言不可知的问题,并且存在所有语言的问题;即:相同的过程)。
我希望有一个解决方案或我可以遵循的领导。谢谢你们,当我把头发拉出来的时候,你们都是最棒的!
你想要写入注册表的是什么样的二进制数据? – 2011-02-23 09:16:23
@alex essilfie我在邮件中显示了我想要写入注册表的数据的类型,上面的可见二进制数据(它是十六进制格式),我不知道如何写入'原样'到注册表,因为如果我把它作为字符串或字节数组发送它与数组中的值,它出现完全不同的时候在注册表中查看,所以我想我需要把它变成另一种'格式'或什么,这是我在哪里我有麻烦。我不知道这个格式是什么,以及如何转换成这种神秘的格式,以便在编写regedit中显示的内容之后,就像上面那样精确!感谢任何1 – 2011-02-23 10:45:19
NExt.Coder - 我总是讨厌提出明显的问题,但是这是您写入REG_BINARY的关键类型? – jac 2011-02-24 21:12:17