如何判断某路径下某一具体字串值是否存在?例如HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下是否存在
字串值KAVRun??
另外二进制值和双字节值又如何处理呢?

解决方案 »

  1.   

    var
     myReg:TRegistry;
    begin
     myReg:=TRegistry.Create ;
     myReg.RootKey :=HKEY_LOCAL_MACHINE;
     try
     myReg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false);
     if myReg.ValueExists('KAVRun') then
      if myReg.GetDataType('KAVRun')=rdString then
       showmessage('yes')
      else showmessage('no');
     finally
      myReg.CloseKey ;
      myReg.Free ;
     end; //end of try
    end;GetDataType得到的数据类型:rdString(字符串);rdUnknown(未知类型);rdExpandString(扩展字符串,其中可以有%SYSTEMROOT%等预定义的变量);rdInteger(双字节值);rdBinary(二进制值)