• Delphi Register


    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.

  • 相关阅读:
    随意给一组数,找出满足一下条件的a[i],a[i]左边的数小于等于a[i],a[i]右边的数大于等于a[i]
    SVN
    四种进程或线程同步互斥的控制方法
    二叉树转双向链表
    最大连续子序列和
    找出一个字符串中第一个只出现一次的字符
    清除浮动的那些事
    jQuery中ready与load事件的区别
    css 经典布局之圣杯布局(左右固定,中间自适应)
    window.name + iframe跨域实例
  • 原文地址:https://www.cnblogs.com/jackxun/p/3672871.html
Copyright © 2020-2023  润新知