请问怎样用Tregistry导出完整的注册表? 请问怎样用Tregistry导出完整的注册表? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 tregistry好像提供这个函数:savetofile?但是好像只能打开一个key以后才可以。就是说最多只能保存6个根键的内容。不过如果你知道*.reg文件格式完全可以自己写savetofile函数。你用regedit保存成一个文件,记事本打开看一下格式,很容易的。 好像只能导出分支吧:)下面是代码 procedure TFormMain.ButtonExportClick(Sender: TObject); var RootKey,phKey: hKey; KeyName,sKeyFileName: String; FileName: array [0..255] of char; begin RootKey := HKEY_CURRENT_USER; KeyName := 'software\mysoft\abc'; RegOpenKeyEx(RootKey, PChar(KeyName), 0, KEY_ALL_ACCESS, phKey); sKeyFileName := 'c:\tempReg'; StrPCopy(FileName,sKeyFileName); //用pchar也行 if RegSaveKey(phKey, FileName, nil)= 0 then ShowMessage('注册表分支已被导出。') else ShowMessage('注册表分支没有被导出。'); RegCloseKey(phKey); end; procedure TFormMain.ButtonImportClick(Sender: TObject); var //从文件导回到注册表 RootKey,phKey: hKey; KeyName,sKeyFileName: String; FileName: array [0..255] of char; begin RootKey := HKEY_CURRENT_USER; KeyName := 'software\mySoft\abc'; RegOpenKeyEx(RootKey, PChar(KeyName), 0, KEY_ALL_ACCESS, phKey); sKeyFileName := 'c:\tempReg'; StrPCopy(FileName,sKeyFileName); if RegRestoreKey(phKey, FileName,0)= 0 then ShowMessage('注册表指定分支已恢复。') else ShowMessage('注册表指定分支没有恢复,操作失败。'); RegCloseKey(phKey); end; 3.另外, 还可以用TRegistry的savekey和restorekey var reg : Tregistry; begin reg := Tregistry.Create; reg.rootkey := HKEY_CURRENT_USER; reg.Savekey('\Software\NetAnts','d:\test1\NetAnts'); end; FastReport中Chart自定义画线 完整的CRM源码,要的进来并送分 如何设置DBGrid的列宽。 是学delphi还是C#?? 对一个陌生的函数,怎么样知道他的详细细节 空格问题 需将dbgrid中的内容处理后打印出来,但我需进行一些处理,如将一个字段的前三个字母打印出来,在什么事件写程序,怎么写 delphi客户端登录服务器出错处理 delphi的兼容性 有用的问题 Delphi7中怎么没有MIDAS了,你们现在做三层用什么做应用服务器? 请问如何知道在调用TStringList的SaveToFile是否完成,比如,如何知道用户按‘确认’或‘取消’
procedure TFormMain.ButtonExportClick(Sender: TObject);
var
RootKey,phKey: hKey;
KeyName,sKeyFileName: String;
FileName: array [0..255] of char;
begin
RootKey := HKEY_CURRENT_USER;
KeyName := 'software\mysoft\abc';
RegOpenKeyEx(RootKey, PChar(KeyName), 0, KEY_ALL_ACCESS, phKey);
sKeyFileName := 'c:\tempReg';
StrPCopy(FileName,sKeyFileName); //用pchar也行
if RegSaveKey(phKey, FileName, nil)= 0 then
ShowMessage('注册表分支已被导出。')
else
ShowMessage('注册表分支没有被导出。');
RegCloseKey(phKey);
end; procedure TFormMain.ButtonImportClick(Sender: TObject);
var //从文件导回到注册表
RootKey,phKey: hKey;
KeyName,sKeyFileName: String;
FileName: array [0..255] of char;
begin
RootKey := HKEY_CURRENT_USER;
KeyName := 'software\mySoft\abc';
RegOpenKeyEx(RootKey, PChar(KeyName), 0, KEY_ALL_ACCESS, phKey);
sKeyFileName := 'c:\tempReg';
StrPCopy(FileName,sKeyFileName);
if RegRestoreKey(phKey, FileName,0)= 0 then
ShowMessage('注册表指定分支已恢复。')
else
ShowMessage('注册表指定分支没有恢复,操作失败。');
RegCloseKey(phKey);
end;
3.另外, 还可以用TRegistry的savekey和restorekey
var
reg : Tregistry;
begin
reg := Tregistry.Create;
reg.rootkey := HKEY_CURRENT_USER;
reg.Savekey('\Software\NetAnts','d:\test1\NetAnts');
end;