标题: [已解决]取“我的文档”中出现的问题 
[打印本页]
作者: 9zhmke     
时间: 2008-5-14 15:11    
标题: [已解决]取“我的文档”中出现的问题
自制一优化批处理,经调试没有问题后应用,在应用中发现一个问题,使用以下语句能显示出完整“我的文档”路径:
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Personal
但是使用这引语句重定向后,比如用“|”“>”后却不一定能正确工作。例如我的文档位置是在“d:\我的文档”
  在有些系统下能取出正确位置,在有些系统下却只有“d:\我的”。
使用>后得到以下信息:
! REG.EXE VERSION 3.0
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
    Personal        REG_SZ        D:\我的
为什么在有些系统下正确而有些系统下不正确?是字符限制引起的吗?我使用了以下命令来测试:
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
显示仍然一切正常,但加上>cc.txt后得到以下内容:
! REG.EXE VERSION 3.0
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
    AppData        REG_EXPAND_SZ        %USERPROFILE%\Application Data
    Desktop        REG_EXPAND_SZ        %USERPROFILE%\桌
    Favorites        REG_SZ        D:\我的文档\系统
    NetHood        REG_EXPAND_SZ        %USERPROFILE%\NetHood
    Personal        REG_SZ        D:\我的
    PrintHood        REG_EXPAND_SZ        %USERPROFILE%\PrintHood
    Programs        REG_EXPAND_SZ        %USERPROFILE%\「开始」?
    SendTo        REG_EXPAND_SZ        %USERPROFILE%\SendTo
    Start Menu        REG_SZ        D:\我的文档\系统?
    Startup        REG_EXPAND_SZ        %USERPROFILE%\「开始」菜单
    Templates        REG_EXPAND_SZ        %USERPROFILE%\Templates
    My Pictures        REG_SZ        D:\我的文档\
    Local Settings        REG_EXPAND_SZ        %USERPROFILE%\Local Settings
    Local AppData        REG_EXPAND_SZ        %USERPROFILE%\Local Settings\Application Data
    Cache        REG_EXPAND_SZ        %USERPROFILE%\Local Settings\Temporary Internet Files
    History        REG_EXPAND_SZ        %USERPROFILE%\Local Settings\History
    Administrative Tools        REG_SZ        C:\Documents and Settings\All Users\「开始」菜单\?
    My Music        REG_SZ        D:\我的
    My Video        REG_SZ        D:\我的
    Recent        REG_SZ        D:\我的文档\系统设置\?
    Cookies        REG_EXPAND_SZ        D:\我的文档\系统?
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\New
从以上内容可以看出,是因为把中文算成了两个字符造成的,所以只输出了一半的内容,该怎么解决呢?
经查看,这次使用的系统是LTM精简的XP,代码页中只有936和437两个选项。估计是这个原因造成的,由于437下不能显示中文,
只能在936下使用,是不是这个原因造成的呢?如果不用其他文件,能否在936下准确地提取到文档位置呢?
 Last edited by 9zhmke on 2008-5-14 at 09:05 PM ]
作者: knoppix7     
时间: 2008-5-14 18:57
REG.exe的恶心的BUG而已.
可以去2003/vista里面找一个reg过来代替以下.
作者: 9zhmke     
时间: 2008-5-14 20:22
谢谢,原来可以用2003的来代替。
作者: 9zhmke     
时间: 2008-5-14 21:04
用2003测试后出错,再替换regapi.dll也不行,使用XPsp3内的reg.exe替换后成功完成功能,没有以上错误。