首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

500分请问EVC中注册表操作REG_BINARY值的有关问题

2012-02-14 
500分请教EVC中注册表操作REG_BINARY值的问题[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\VSPD1]DevConfighex

500分请教EVC中注册表操作REG_BINARY值的问题
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\VSPD1]
"DevConfig"=hex:\
  10,00,00,00,05,00,00,00,10,01,00,00,00,4b,00,00,00,00,08,00,00,00,00,00,00

[HKEY_LOCAL_MACHINE\Drivers\Active\22]
"Hnd"=dword:0004c9a0
"Name"="COM5:"
"Key"="Drivers\\BuiltIn\\VSPD1"
"ClientInfo"=dword:00000000

[HKEY_LOCAL_MACHINE\Drivers\Active\21]
"Hnd"=dword:00049ca0
"Name"="COM3:"
"Key"="Drivers\\BuiltIn\\VSPD0"
"ClientInfo"=dword:00000000

如上所示,我想用一个端口映射软件,将COM2 映射成COM3,COM5这样就可以2个软件同时使用GPS端口,使用的SPLITTER软件,如果手工操作可成功,以上是手工操作生成的注册表文件,问题是我用程序去自动写注册表后,总是映射不成功.

可能的原因:
1,HKEY_LOCAL_MACHINE\Drivers\Active\
下面保存的资料的 Hnd 项的值是哪来的,手工操作每次生成的值都不一样?如果我要自己设置,这个值从哪来?
2,"DevConfig"=hex:\
  10,00,00,00,05,00,00,00,10,01,00,00,00,4b,00,00,00,00,08,00,00,00,00,00,00
这个值怎么写入.


详细可见附件,SPLITTER软件,问题解决马上送出500分,
谢谢


[解决办法]
不知道怎么解决,帮你顶下
[解决办法]
做个记号,看高手的回答
[解决办法]
我觉得 HKEY_LOCAL_MACHINE\Drivers\Active\下是不需要自己设置或修改的。

注册表写二进制数据的方法如下
unsigned char cbuf[128];

int len;

// TODO: Add extra validation here
len = m_BValue.GetHexData(cbuf,16);

if(ERROR_SUCCESS!=RegSetValueEx(h_Key,(LPCTSTR)m_Name,NULL, REG_BINARY,(BYTE *)cbuf,len))
MessageBox(_T("设置值失败!"),_T("失败"),MB_OK);

这个里面有个注册表编辑器,你可以用用看。
http://download.csdn.net/source/161091

希望有所帮助。
[解决办法]
HKEY_LOCAL_MACHINE\Drivers\Active\
下面的值是根据驱动程序系统自己生成的,比如有一个驱动在下面是第20,你卸载之后,再重新装载就不是20了,而是最后一个值加一。
"DevConfig "=hex:\ 
10,00,00,00,05,00,00,00,10,01,00,00,00,4b,00,00,00,00,08,00,00,00,00,00,00 
这些东西,是在写驱动程序的时候,生成的。
[解决办法]
Active路径基本上不允许手工添加,如果你能添加成功,请及时告诉我。(因为这是系统注册的子键,通过ActiveDeviceEx函数进行)
我想最好的方法应该是在
HKEY_LOCAL_MACHINE\Drivers\BuiltIn下文章。
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\VSPD0]
"Prefix"="COM"
"Index"=dword:3
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\VSPD1]
"Prefix"="COM"
"Index"=dword:5
其余的都一样

[解决办法]
关注一下..
[解决办法]
http://download.csdn.net/source/285079

热点排行