TRegistry.SaveKey

Delphi 5, TRegistry.SaveKey
function SaveKey(const Key, FileName: String): Boolean; does not work anyway.
Someone knows the usage to make it work?
Regards
Wandrey
wandreyAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
shenqwConnect With a Mentor Commented:
//Win98 is ok.
//On NT you must have backup Privileges

procedure TForm1.Button1Click(Sender: TObject);
const
  ADJUST_PRIV = TOKEN_QUERY or TOKEN_ADJUST_PRIVILEGES;
  SHTDWN_PRIV = 'SeBackupPrivilege';
  PRIV_SIZE   = sizeOf(TTokenPrivileges);
var
  cu:TRegistry;
  TokenPriv, Dummy: TTokenPrivileges;
  Token: THandle;
  Len:DWORD;
begin
    cu := TRegistry.Create;
    cu.RootKey := HKEY_LOCAL_MACHINE;
    DeleteFile('c:\temp\rkey');
    OpenProcessToken(GetCurrentProcess(), ADJUST_PRIV, Token);
    LookupPrivilegeValue(nil, SHTDWN_PRIV,TokenPriv.Privileges[0].Luid);
    TokenPriv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
    TokenPriv.PrivilegeCount := 1;  // One privilege to set
    AdjustTokenPrivileges(Token, false, TokenPriv, PRIV_SIZE,Dummy, Len);
    try
      if cu.savekey('\Software\NuMega','c:\temp\rkey') then
        showmessage('Written...')
      else showmessage('Fail');
    finally
      cu.Free;
    end;
end;
0
 
msediCommented:
Hello,

I don't know what you did before and what functions you have used before. So I begin with the first step:

var
  Reg : TRegistry;

begin
  Reg := TRegistry.Create();
  Reg.RootKey := HKEY_LOCAL_MACHINE; <- Maybe that's what you forgot

Good luck,
Martin

 
0
 
wandreyAuthor Commented:
Ok, thats all simple beginning - I have wrote many tools with TRegistry, access local and remote hosts, read, write and change values - all of that was no problem. But the SaveKey does not function at all - not in the manner the online help suggests nor in any other imaginable possibility.
Background: I want to write a hole key with all of its subkeys and values to a diskfile for later campares to avoid the enumaration through the hole keys and values. The prog. must run on NT 4 SP6 in the admin security context (so there are no restrictions).
0
[Webinar] Kill tickets & tabs using PowerShell

Are you tired of cycling through the same browser tabs everyday to close the same repetitive tickets? In this webinar JumpCloud will show how you can leverage RESTful APIs to build your own PowerShell modules to kill tickets & tabs using the PowerShell command Invoke-RestMethod.

 
msediCommented:
Hello,

I've looked in the Borland community

http://community.borland.com/article/0,1410,10348,00.html

looks like there's an error in D5 TRegistry.

Good luck, Martin
0
 
wandreyAuthor Commented:
Hello,
thanks for all your efforts, I have search and found these and other articles also. But there seem to be some people out there, who has solve this problem, or might say dont have this problem.(i.e. in here:qid=10128124 is a question around this topic).
regards
Willy
0
 
wandreyAuthor Commented:
Concrete:
Called from Button1Click()->
>>>>>>>>>>>>>>>>>>>>>>>>
procedure TForm1.scanregpath;
var i:integer;
    sl:tstringlist;
begin
    cu := TRegistry.Create;
    cu.RootKey := HKEY_LOCAL_MACHINE;
  try
    if cu.savekey('\software\McAfee\VirusScan','c:\temp\rkey') then
      showmessage('Written...')
    else showmessage('Fail');
  finally
    cu.Free;
  end;
end;
<<<<<<<<<<<<<<<<<<<<<<<<<<<<
This returns "Fail". The file in C:\TEMP was created but empty.
0
 
intheCommented:
Hi,
i just tested this and it seems to work ok ,see how it goes for you :

implementation

{$R *.DFM}
uses registry;

procedure TForm1.Button1Click(Sender: TObject);
var
 reg : tregistry;
begin
 Reg := TRegistry.Create;
 Reg.RootKey:=HKEY_LOCAL_MACHINE;  {OR HKEY_USERS }
  if not fileexists('c:\myreg.reg') then
   try
     if Reg.SaveKey('\Software\Borland\Delphi', 'c:\myreg.reg') then
        ShowMessage( 'Saved' )
      else
        ShowMessage( 'Error Saving' )
        finally
      Reg.Free;
    end
  else showmessage('File already exists');
 end;

Regards Barry
0
 
wandreyAuthor Commented:
Thanks, this was very good!
Regards
Willy
0
All Courses

From novice to tech pro — start learning today.