zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    消息队列系列——启蒙(一)
    重新整理数据结构与算法(c#)—— 图的深度遍历和广度遍历[十一]
    重新整理数据结构与算法——八皇后问题解决[十]
    重新整理数据结构与算法——迷宫算法[九]
    重新整理数据结构与算法——逆波兰表达计算器[八]
    lowdb 在electron 使用中注意的问题
    apollo客户端springboot实战(四)
    apollo在liunx环境实战(三)
    apollo入门demo实战(二)
    设计模式总结
  • 原文地址:https://www.cnblogs.com/jackxun/p/3672871.html
Copyright © 2011-2022 走看看