Fórum Registro Windows (TRegistry) #286561

30/06/2005

0

Eu preciso fazer backup do registro do window no caminho
HKEY_CURRENT_USER\MeuSistema.
Essa chave possui outras subchaves.
Pelo help eu verifique a existência de um método SaveKey e RestoreKey na TRegistry mas
não consigo faze-los funcionar. O SaveKey só retorna false.
Executo da seguinte froma
(...)
oReg.SaveKey(´HKEY_CURRENT_USER\MeuSistema´, ´c:\tempReg´);
(...)

Nada tem a ver com permissão de acesso ou gravação

Obrigado


Andremuller

Andremuller

Responder

Posts

30/06/2005

Andremuller

Pra ser mais específico ela gera um arquivo como informado mas vazio (0 bytes). Ao executar a mensagem é sempre ´Não´

  oReg := TRegistry.Create;
  try
    oReg.RootKey := HKEY_CURRENT_USER;
    if not oReg.KeyExists(edit1.Text) then
      raise Exception.Create(´Chave não existe´);
    if oReg.SaveKey(edit1.text, ´c:\tempReg´) then
      ShowMessage(´Salvou´)
    else
      ShowMessage(´Não´);
  finally
    FreeAndNil(oReg);
  end;



Responder

Gostei + 0

30/06/2005

Massuda

Faltou um TRegistry.OpenKey antes de tentar o TRegistry.SaveKey.


Responder

Gostei + 0

30/06/2005

Andremuller

continua dando exatamento no mesmo
var
  oReg: TRegistry;
begin
  oReg := TRegistry.Create;
  try
    oReg.RootKey := HKEY_CURRENT_USER;
    if not oReg.KeyExists(edit1.Text) then
      raise Exception.Create(´Chave não existe´);
    oReg.OpenKey(edit1.Text, False);
    if oReg.SaveKey(edit1.text, ´c:\tempReg´) then
      ShowMessage(´Salvou´)
    else
      ShowMessage(´Não´);
  finally
    FreeAndNil(oReg);
  end;



Responder

Gostei + 0

30/06/2005

Massuda

continua dando exatamento no mesmo
Qual o seu OS?


Responder

Gostei + 0

01/07/2005

Andremuller

Windows XP Professional
sou administrador da máquina e único usuário


Responder

Gostei + 0

01/07/2005

Massuda

Windows XP Professional sou administrador da máquina e único usuário
Segundo a Ajuda do SDK do Windows, numa máquina com Win NT/2K/XP, não basta ser administrador da máquina (!), é preciso ainda ter os privilégios SE_BACKUP_NAME (SeBackupPrivilege) e/ou SE_RESTORE_NAME (SeRestorePrivilege) para poder usar SaveKey e/ou RestoreKey. Numa máquina com Win 9x/ME o código funciona sem problemas.

No caso do Win NT/2K/XP, imagino que isso possa ser ajustado via Painel de Controle e/ou programaticamente, mas não tenho a mínima idéia de como se faz isso.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar