Delphi获取程序版本号
参考: http://www.delphitop.com/html/hanshu/4627.html
procedure GetVersionInfo(const FileName:string; var vs:string);
var VerInfoSize,VerValueSize,Dummy:DWORD;
VerInfo: Pointer;
VerValue: PVSFixedFileInfo;
V1,V2,V3,V4:Word;
begin
vs:='';
if not FileExists(FileName) then exit;
VerInfoSize:=GetFileVersionInfoSize(PChar(FileName),Dummy);
if VerInfoSize=0 then exit;
GetMem(VerInfo,VerInfoSize);
if not GetFileVersionInfo(PChar(FileName),0,VerInfoSize,VerInfo) then exit;
VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
with VerValue^ do
begin
V1:=dwFileVersionMS shr 16;
V2:=dwFileVersionMS and $FFFF;
V3:=dwFileVersionLS shr 16;
V4:=dwFileVersionLS and $FFFF;
vs:=inttostr(v1)+'.'+inttostr(v2)+'.'+inttostr(v3)+'.'+inttostr(v4);
end;
FreeMem(VerInfo,VerInfoSize);
end;
经测试,管用!
Delphi获取程序版本号的更多相关文章
- Android实例-获取程序版本号(XE10+小米2)
相关资料: 383675978群号 实例源码: unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, Sy ...
- WPF获取程序版本号(Version)的方法
1.第一种:通过System来获取 public static Version GetEdition() { return System.Reflection.Assembly.GetExecutin ...
- c#获取程序版本号
Content.Text = "程序集版本:" + System.Reflection.Assembly.GetExecutingAssembly().GetName().Vers ...
- Delphi获取其他exe程序版本号
delphi获取Exe文件版本信息的函数 Type TFileVersionInfo = Record FixedInfo:TVSFixedFileInfo; {版本信息} CompanyName:S ...
- android 获取当前版本号/修改自定义的应用程序的版本号
1.获取当前版本号 PackageManager pm = getPackageManager(); PackageInfo pi = pm.getPackageInfo(getPackageName ...
- C# 应用程序单例(禁止多开) 获取.net版本号 以及 管理员权限
Mutex不仅提供跨线程的服务,还提供跨进程的服务.当在构造函数中为Mutex指定名称时,则会创建一个命名了的Mutex.其他线程创建Mutex时,如果指定的名称相同,则返回同一个互斥体,不论该线程位 ...
- Delphi2010如何获取程序内部自身版本号?
用原来的GetFileVersionInfo只能获取Delpi7的程序版本号,用在Delphi2010中就不管用了 //------ 获取文件版本号function F_GetFileVersion( ...
- delphi 怎么获取工程版本号
function GetApplicationVersion:String; // Added 取得程序版本号 var FileName:String; InfoSize,Wnd:DWORD; Ver ...
- delphi根据进程PID获取程序所在路径的函数(用OpenProcess取得句柄,用GetModuleFileNameEx取得程序名)
uses psapi; {根据进程PID获取程序所在路径的函数}function GetProcessExePath(PID: Cardinal): string;varpHandle: THandl ...
- asp.net C#获取程序文件相关信息
代码如下 复制代码 using System.Reflection;using System.Runtime.CompilerServices; //// 有关程序集的常规信息是通过下列// 属性集控 ...
随机推荐
- 12月19日内容总结——Q查询进阶、ORM查询优化、ORM事务、ORM常用字段类型和字段参数、Ajax介绍、数据编码格式、Ajax携带文件数据
目录 一.Q查询进阶操作 二.ORM查询优化 三.ORM事务操作 四.ORM常用字段类型 五.ORM常用字段参数 六.Ajax AJAX简介 应用场景 AJAX的优点 语法实现 七.数据编码格式(Co ...
- 四、python解释器、环境变量和多版本共存
目录 一.python解释器 1.python发展方向 2.python解释器 1.历史 2.版本 3.下载 4.安装 5.使用 二.环境变量与多版本共存 环境变量设置 多版本共存 三.运行pytho ...
- CentOS7登录到控制台后无网络
1.找到网卡配置文件 ll /etc/sysconfig/network-scripts/ | grep ifcfg-en 2.编辑配置文件开启系统启动时自动启动网络,并保存文件 vi /etc/sy ...
- 【ASP.NET Core】标记帮助器——元素筛选
前一篇中老周从标记帮助的底层介绍关键性的接口,如 ITagHelper ,它是一个标志,用于识别哪些类属于 Tag Helper. 标记帮助器毕竟是针对 HTML 标记的,所以得筛选.说白了就是我写的 ...
- JZOJ 5355. 【NOIP2017提高A组模拟9.9】保命
题目 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄做一些防火措施,保障自己.猫.奶牛的生命安全. 农夫约的农庄里有N+1 座建筑,排成了一排,编号为0-N.对于0 < ...
- MySQL错误锦集【持续更新】
[42000][1075] Incorrect table definition; there can be only one auto column and it must be defined a ...
- 跳板攻击之: MSF 添加路由方式渗透内网
跳板攻击之: MSF 添加路由方式渗透内网 目录 跳板攻击之: MSF 添加路由方式渗透内网 1 Metasploit 跳板攻击: 添加路由方式原理 2 实验环境 2.1 建立 meterpreter ...
- 原子类Atomic
前言 非阻塞算法:如果在某种算法中,一个线程的失败或挂起不会导致其他线程也失败或挂起,那么这种算法就被称为非阻塞算法.如果在算法的每个步骤中都存在某个线程执行下去,那么这种算法也被称为无锁(Lock_ ...
- 初学 Canvas
画布的概念 Canvas(画布)可以用于动画.游戏画面.数据可视化.图片编辑以及实时视频处理等方面.画布在 HTML5 中是通过canvas标签来表现,通过 JavaScript 提供的画布 API, ...
- 一次线上OOM问题分析
现象 线上某个服务有接口非常慢,通过监控链路查看发现,中间的 GAP 时间非常大,实际接口并没有消耗很多时间,并且在那段时间里有很多这样的请求. 原因分析 先从监控链路分析了一波,发现请求是已经打到服 ...