你应该使用Registry.DeleteValue('Software\Microsoft\Windows\CurrentVersion\Run\Guard')

解决方案 »

  1.   

    写错了  Registry:=TRegistry.Create; 
      Registry.RootKey:=HKEY_LOCAL_MACHINE; 
      try 
        if Registry.OpenKey('Software\Microsoft\Windows\CurrentVersion\R 
    un') then 
          MessageDlg('打开成功!', mtInformation,[mbOk], 0) 
        else 
          MessageDlg('打开失败!', mtError,[mbOk], 0); 
        if Registry.DeleteValue('Guard') then
          MessageDlg('成功!', mtInformation,[mbOk], 0) 
        else 
          MessageDlg('失败!', mtError,[mbOk], 0); 
        Registry.CloseKey; 
      finally 
        Registry.Free; 
      end; 
      

  2.   

    删除值或数据用 deletevalue
    删除项用 deletekey,对于win95,用deletekey 
    将把该项及它的子项和值都删除,对应WINNT
    必须把子项和值都删除后才能删除项