unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,ShellAPI,TLHelp32 ;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
list: TStringList;
i,j,k: Integer;
vSourcStr:string;
vDstr:string;
OutBatchFile:Textfile;
OutBatchFileName:string;
processinfo:tProcessInformation;
StartUpinfo:TStartupInfo;
RegBatchFile:Textfile;
RegBatchFileName:string;
begin
OutBatchFileName:=ExtractFilePath(ParamStr(0))+'OutReg.bat';
AssignFile(OutBatchfile,OutBatchFileName);
Rewrite(OutBatchFile);
Writeln(OutBatchfile,'Regedit/e c:\files.reg HKEY_USERS');
closefile(OutBatchFile);
FillChar(StartUpInfo,Sizeof(StartUpInfo),byte(0));
StartUpInfo.dwFlags := STARTF_USESHOWWINDOW;
StartUpInfo.wShowWindow := SW_Hide;
if CreateProcess(nil, PChar(OutBatchFileName), nil, nil,
False, IDLE_PRIORITY_CLASS, nil, nil, StartUpInfo,
ProcessInfo) then
begin
SLEEP(2000);
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
end;
vSourcStr := 'Compact Check Count';
vDstr:='"Compact Check Count"=dword:00000001';
list := TStringList.Create;
list.LoadFromFile('C:\files.reg');
k:= list.count - 1;
for i := 0 to k do
begin
j:=Pos(vSourcStr,list[i]);
if j<>0 then
begin
list.Delete(i);
list.Insert(i,vDstr);
list.SaveToFile('C:\files.reg');
end;
end;
RegBatchFileName:=ExtractFilePath(ParamStr(0))+'ImportReg.bat';
AssignFile(RegBatchfile,RegBatchFileName);
Rewrite(RegBatchFile);
Writeln(RegBatchfile,'Regedit/s c:\files.reg HKEY_USERS');
closefile(RegBatchFile);
StartUpInfo.dwFlags := STARTF_USESHOWWINDOW;
StartUpInfo.wShowWindow := SW_Hide;
if CreateProcess(nil, PChar(RegBatchFileName), nil, nil,
False, IDLE_PRIORITY_CLASS, nil, nil, StartUpInfo,
ProcessInfo) then
begin
SLEEP(2000);
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
end;
DELETEFILE('C:\files.reg');
DeleteFile(OutBatchFileName);
DeleteFile(RegBatchFileName);
Application.ProcessMessages;
SendMessage(handle,WM_CLOSE,0,0);
Application.Terminate;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.Click;
end;
end.