//下面是读取window xp的我的电脑图标的地址数据。
var
  TheReg: TRegistry;
  KeyName:string;
  temp_Str:string;
  ValueStr:string;
begin
      TheReg := TRegistry.Create;
      TheReg.RootKey:=HKEY_CLASSES_ROOT;
      KeyName:='CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}{\DefaultIcon';
      if TheReg.OpenKey(KeyName, True) then begin
       ValueStr:=trim(TheReg.ReadString(''));  
        //如何读出默认的数据呢?小弟我没有读出来是不是写错了?
       showmessage(ValueStr);//输出来看不到数据。如何才能读出来?
      end;
end;//注册表中有一个数据是windows的默认值。小弟不能把默认的值读不出来。如何才能读出来呢?请帮助。

解决方案 »

  1.   

    应该没错,
    你把KeyName这个变量的值直接写在
    if TheReg.OpenKey('*****', True) then begin 试试
      

  2.   

    {20D04FE0-3AEA-1069-A2D8-08002B30309D}{这个是什么东西???????
      

  3.   

    'CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}{\DefaultIcon'这个是个什么东东????就这个了‘}{’怎么回事?自己看。:〉
      

  4.   

    那就是没数据罗可以这样检验一下
    procedure TForm1.Button2Click(Sender: TObject);
    var
      TheReg: TRegistry;
      KeyName:string;
      ValueStr:string;
    begin
      TheReg := TRegistry.Create;
      TheReg.RootKey:=HKEY_CLASSES_ROOT;
      KeyName:='CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}{\DefaultIcon';
      if TheReg.OpenKey(KeyName, True) then
      begin
        ValueStr:=trim(TheReg.ReadString(''));
        if ValueStr = '' then
          ShowMessage('没数据!');
      end;
    end;