用原来的GetFileVersionInfo只能获取Delpi7的程序版本号,用在Delphi2010中就不管用了

//------ 获取文件版本号
function F_GetFileVersion(FN: string): string;
var
  Temp, InfoSize: Cardinal;
  FileData: Pointer;
  FileInfo: PVSFixedFileInfo;
begin
  Result := '';
  if not FileExists(FN) then Exit;

  InfoSize := GetFileVersionInfoSize(PChar(FN), Temp);
  if InfoSize  = 0 then Exit;       //没有版本号
  FileData := GetMemory(InfoSize);
  try
    if not GetFileVersionInfo(PChar(FN), 0, InfoSize, FileData) then Exit;
    if not VerQueryValue(FileData, '\', Pointer(FileInfo), Temp) then Exit;
    Result := Format('%d.%d.%d.%d',
      [FileInfo.dwFileVersionMS div $10000,
       FileInfo.dwFileVersionMS mod $10000,
       FileInfo.dwFileVersionLS div $10000,
       FileInfo.dwFileVersionLS mod $10000]);
  finally
    FreeMemory(FileData)
  end;

解决方法是用第三方控件Rave,里面有个RzVersionInofo,放上去编译的时候勾选Including version information in project,就可以获取版本号了,获取方法:Showmessage(RzVersionInofo1.FileVersion);

Delphi2010如何获取程序内部自身版本号?的更多相关文章

  1. Delphi2010怎样获取程序内部自身版本?

    用原来的GetFileVersionInfo仅仅能获取Delpi7的程序版本,用在Delphi2010中就无论用了 //------ 获取文件版本 function F_GetFileVersion( ...

  2. uwsgi+django架构程序内部无法获取全局变量

    近期开发了一个djangoi程序,用django自带的python manage.py runserver 0.0.0.0:80 运行方式无任何问题,但用django+nginx+uwsg部署运行有时 ...

  3. asp.net C#获取程序文件相关信息

    代码如下 复制代码 using System.Reflection;using System.Runtime.CompilerServices; //// 有关程序集的常规信息是通过下列// 属性集控 ...

  4. 为什么获取的System.Web.HttpContext.Current值为null,HttpContext对象为null时如何获取程序(站点)的根目录

    ASP.NET提供了静态属性System.Web.HttpContext.Current,因此获取HttpContext对象就非常方便了.也正是因为这个原因,所以我们经常能见到直接访问System.W ...

  5. WPF 获取程序路径的一些方法,根据程序路径获取程序集信息

    一.WPF 获取程序路径的一些方法方式一 应用程序域 //获取基目录即当前工作目录 string str_1 = System.AppDomain.CurrentDomain.BaseDirector ...

  6. [置顶] iOS 应用程序内部国际化,不跟随系统语言

    前言:网络上关于iOS国际化的文章很多,但基本上都是基于跟随系统语言的国际化,笔者就不赘述了-0 – 今天要讲的是不跟随系统的切换语言版本方案,即程序内部的切换语言版本方案. 一.总则: 应用内部语言 ...

  7. UNIX网络编程卷1 时间获取程序server TCP 协议相关性

    本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie 最初代码:  这是一个简单的时间获取server程序.它和时间获取程序client一道工作. ...

  8. PhotoPickerDemo【PhotoPicker0.9.8的个性化修改以及使用(内部glide版本号是3.7.0)】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 本Demo使用的是PhotoPicker 0.9.8版本,属于比较旧的版本,里面集成的glide版本号是3.7.0.本篇文章主要是留 ...

  9. C++通用WMI接口实现获取Windows操作系统内核版本号

    作为一名Windows开发者,能熟练掌握WMI技术,在开发Windows应用程序的时候往往能够事半功倍.今天来给大家分享一个使用WMI来获取Windows操作系统内核版本号的例子. 首先我们打开WMI ...

随机推荐

  1. opencv人脸识别代码

    opencv人脸识别C++代码 /* * Copyright (c) 2011,2012. Philipp Wagner <bytefish[at]gmx[dot]de>. * Relea ...

  2. Grid Virtual Server 和 网格计算

    Grid Virtual Server 的 Virtual Server 源于 LVS (Linux Virtual Server) , LVS 的意思就是把 多个 Linux 服务器 联合起来构成一 ...

  3. 获取当前 服务 路径 .net

    using System; //例如 AppDomain.CurrentDomain.BaseDirectory + "\\Setting.ini";

  4. pycharm加载多个项目

    菜单位置:File -> Settings -> Project:xxx -> Project Stucture Project:xxx中xxx一般是已有项目的名称 窗口右侧上点击A ...

  5. eval 日期对象

    js中,eval相当于python中的eval(表达式)和exec(代码)的集合. var d = new Date();    #申明一个新的日期对象,方便之后调用,它的方法getDate();ge ...

  6. .net core 连接sql server 时提示Connection Timeout Expired

    .net core开发环境是ubuntu LINUX, 在ubuntu 上 telnet 数据库IP 端口是通的. SQL SERVER 是2008 ,未打SP补丁. 打完 SQL SERVER  2 ...

  7. 在CAD二次开发中使用状态条按钮

    Pane pane = new Pane(); pane.Enabled = true; pane.Text = "状态条按钮"; pane.ToolTipText = " ...

  8. java读写操作心得

    一.获得控制台用户输入的信息     public String getInputMessage() throws IOException...{         System.out.println ...

  9. 【mysql】之性能优化

    http://blog.csdn.net/orichisonic/article/details/48026031 https://www.cnblogs.com/zhming26/p/6322353 ...

  10. lucene 一次查询多个id

    在文本搜索中,有时也需要一次搜索多个id,这里id类似数据库里面的主键. 这个id在索引里面的倒排列表长度往往等于1. 例如:根据id=[1,2,4,6,7]查询索引 最最一般的思路是构造一个bool ...