测试前请备份注册表。我有一个不是办法的办法,可以解决导入导出。就是利用 regedit.exe 给他挂上参数。
导出
 //REGEDIT [/L:system] [/R:user] /E filename3 [regpath1]
导入
 //REGEDIT filename3 办法
导出某键值,没有后面的参数就是导出全部,很大的。参数你自己加。我这里把 borland高出来。
var
  runFile: String;
  SL: TStringList;
begin
  RunFile := 'DosDos.bat';
  SL := TStringList.Create;
  SL.Add('regedit /E test.reg HKEY_CURRENT_USER\software\Borland');
  SL.SaveToFile(RunFile);
  Shellexecute(handle,nil,pchar(RunFile), nil, nil,SW_HIDE);
  SL.Free;
end;
导入:
var
  runFile: String;
  SL: TStringList;
begin
  RunFile := 'DosDos.bat';
  SL := TStringList.Create;
  SL.Add('regedit test.reg');
  SL.SaveToFile(RunFile);
  Shellexecute(handle,nil,pchar(RunFile), nil, nil,SW_HIDE);
  SL.Free;
end;