无忧启动论坛

标题: 注册表的问题! [打印本页]

作者: different    时间: 2008-7-26 20:06
标题: 注册表的问题!
注册表不可以用类似%systemroot%格式的路径吗?非要用绝对路径?

举个例子(windows在C:\):
  1. Windows Registry Editor Version 5.00
  2. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
  3. "notepad"="C:\\windows\\notepad.exe"
复制代码
不可以用
  1. Windows Registry Editor Version 5.00
  2. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
  3. "notepad"="%systemroot%\\notepad.exe"
复制代码
代替吗?


我想在注册表里用"%...%"这样的路径,可以吗?(第一个代码是有效的,但C:\\windows改为%systemroot%就不行了,不知道为什么)

[ 本帖最后由 different 于 2008-7-26 21:04 编辑 ]
作者: netwinxp    时间: 2008-7-26 20:31
可以啊,不过我记得xp的大多数文件在%SystemRoot%\system32下面,不过我记得好像这类的大多数的字串类型是REG_EXPAND_SZ,导出来是HEX(2)类型的(其实就是UNICODE字串,并且不是\\而是\)

[ 本帖最后由 netwinxp 于 2008-7-26 20:33 编辑 ]
作者: different    时间: 2008-7-26 20:51
导出来是"\\"的啊,这个没错,windows文件放在哪里也不重要。

问题关键是注册表是不是不能用"%...%"这类型的路径啊?

[ 本帖最后由 different 于 2008-7-26 20:58 编辑 ]
作者: kelt    时间: 2008-7-26 20:55
里面的值是不是可以变成这样呢?
作者: different    时间: 2008-7-26 20:57
"%...%"可以导入,但是不起作用的,就是说注册表认不出"%...%"啦?
作者: netwinxp    时间: 2008-7-26 23:52
不是说了吗,类型是REG_EXPAND_SZ(你可以看看系统哪个带%..%变量的字串没有用REG_EXPAND_SZ的?),而不是常见的REG_SZ。REG_EXPAND_SZ导出来是HEX(2),字串是UNICODE编码的,所以"\"也不会自动转成"\\"。你把下面导进去看会不会自动运行,至于为何REG_SZ不能识别%...%只好去问比尔该死:)
  1. Windows Registry Editor Version 5.00
  2. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
  3. "记事本"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,\
  4.   25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6e,00,6f,\
  5.   00,74,00,65,00,70,00,61,00,64,00,2e,00,65,00,78,00,65,00,00,00
复制代码
上面那个字串其实就是:%SystemRoot%\system32\notepad.exe

[ 本帖最后由 netwinxp 于 2008-7-27 14:33 编辑 ]
作者: kangyi    时间: 2008-7-27 14:01
可能需要重复一个%,也就是%%systemroot%%,命令行添加IE link时,如果地址中出现%,也要重复再写一个,比如keyword=%%B8%%EC%%B8%%BB
作者: EnsonKing    时间: 2008-8-11 09:53
原帖由 netwinxp 于 2008-7-26 23:52 发表
不是说了吗,类型是REG_EXPAND_SZ(你可以看看系统哪个带%..%变量的字串没有用REG_EXPAND_SZ的?),而不是常见的REG_SZ。REG_EXPAND_SZ导出来是HEX(2),字串是UNICODE编码的,所以"\"也不会自动转成"\\"。你把下 ...

用REG_SZ也可以的 我以前操作的时候就是用的这个
不过刚才又去测试了一下 好像Run下面只认REG_EXPAND_SZ类型的 REG_SZ的不认
但是在设置壁纸、图标之类的时候是可以用REG_SZ类型的
蛮奇怪的
原帖由 kangyi 于 2008-7-27 14:01 发表
可能需要重复一个%,也就是%%systemroot%%,命令行添加IE link时,如果地址中出现%,也要重复再写一个,比如keyword=%%B8%%EC%%B8%%BB

不需要的
作者: different    时间: 2008-8-11 12:33
是了,注册表又不是BAT或CMD,并不要加多个%的。




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3