Delphi做的软件自动更新

这个博客分享了作者如何利用Delphi编写自动更新程序的关键技术,包括获取版本号、批处理删除自身功能,以及结合网络上的资源。文章中包含了单元UnitUpG的详细实现,涉及版本信息获取、进程管理、文件操作等核心代码。
摘要由CSDN通过智能技术生成

自己整理做的delphi自动更新程序,关键技术要感谢僵哥提供的获取版本号功能和startluck提供的批处理删除自身的功能,以及在网上查找资料所不能列举的各位好朋友!(本文章仅作为自己备忘所用)

unit UnitUpG;

interface

uses
  Forms,
  Windows,
  SysUtils,
  Classes,
  Controls,
  URLMON,
  SHellAPi,
  iniFiles,
  Tlhelp32;
  procedure UpGrade;
  procedure KillExe;
var
  SName:String;
  UpGradeB:Boolean;
type
  TLANGANDCODEPAGE=record
    wLanguage,wCodePage:Word;
end;
  PLANGANDCODEPAGE=^TLANGANDCODEPAGE;

type
  TUpDateThread=class(TThread)
  protected
    procedure Execute;override;
  end;

implementation

uses UNIT1;

function ShowVersion:String;
var
  VerInfo:PChar;
  lpTranslate:PLANGANDCODEPAGE;
  FileName:String;
  VerInfoSize,cbTranslate:DWORD;
  VerValueSize:DWORD;
  Data:String;

  VerFileV:PChar;
  lpFileVersion:string;
begin
  Result:='0.0.0.0';
  FileName:=Application.ExeName;
  VerInfoSize:=GetFileVersionInfoSize(PChar(FileName),VerInfoSize);
  if VerInfoSize>0 then
  begin
    VerInfo:=AllocMem(VerInfoSize);

    GetFileVersionInfo(PChar(FileName),0,VerInfoSize,VerInfo);

    VerQueryValue(VerInfo, PChar('/VarFileInfo/Translation'), Pointer(lpTranslate),cbTranslate);

    if cbTranslate<>0  then
    begin
      Data := format('/StringFileInfo/%.4x%.4x/FileVersion',[lpTranslate^.wLanguage,lpTranslate^.wCodePage]);

      VerQueryValue(VerInfo, PAnsiChar(data),Pointer(VerFileV), VerValueSize);

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值