测试前请备份注册表。我有一个不是办法的办法,可以解决导入导出。就是利用 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;
导出
//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;
var reg:tregistry;
begin
reg.RootKey:=HKEY_USERS;
reg.SaveKey('aaaa','d:\reg.reg');
end;procedure TForm1.Button2Click(Sender: TObject);
var reg:tregistry;
begin
reg.rootkey:=HKEY_USERS;
reg.LoadKey('aaaa','d:\reg.reg')
end;
本人用这种方法测试已经通过了