XP受限用户读取注册表的问题。DELPHI 在XP的受限用户中无法读取注册表的项目和值(不是写入)。首先想到的是修改注册表的权限,但是发现即使把受限用户设成对注册表完全控制,受限用户登陆进去还是无法读取注册表信息。后来想到在DELPHI执行DOS命令 regedit /E d:\a.txt  HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVe
rsion 可以将相关分支的注册表信息导出,但是在将TXT文本导入到LISTBOX或者用DELPHI的TXT方式打开导入时却是乱码(在WINDOWS下直接用记事本打开不会乱码)再后来将DOS命令改为 regedit /E d:\a.XLS 就是用导出为EXCEL文件格式,再用DELPHI 打开EXCEL导入到LISTBOX 成功,没有乱码。
但是这样要求每台客户机都装有EXCEL软件。哪位 老大有没有更好的办法!!!

解决方案 »

  1.   

    直接打开不会乱码,楼主看看哪个保存出来的文件格式,是Ansi的,还是UniCode格式的
    如果是UniCode的格式,你直接弄到Delphi中去就肯定是乱码的!
      

  2.   

    regedit /E 生成的是Unicode格式的文本文件, 导入时要转换一下, 例如:var
      F: TFileStream;
      S: WideString;
    begin
      F := TFileStream.Create('d:\a.txt', fmOpenRead);
      try
        SetLength(S, (F.Size - 2) div 2);
        F.Seek(2, soBeginning);
        F.Read(S[1], F.Size - 2);
        Memo1.Text := S;
      finally
        F.Free;
      end;
    end;
      

  3.   

    TO jadeluO
    问题解决,呵呵,高手就是不一样.