Python获取DLL和EXE文件版本号的方法

下面我将详细讲解 Python 获取 DLL 和 EXE 文件版本号的方法。

怎么获取 DLL 和 EXE 文件的版本号?

要获取 DLL 和 EXE 文件的版本号,需要通过 Python 内置的 win32api 模块提供的 GetFileVersionInfo 和 VerQueryValue 函数进行操作。下面将详细介绍这两个函数,以及如何在 Python 中使用它们获取 DLL 和 EXE 文件版本号。

1. GetFileVersionInfo 函数

GetFileVersionInfo 函数用于获取指定 DLL 或 EXE 文件的文件版本信息和其他相关信息。它的用法如下:

import win32api

filename = "C:\Windows\System32\kernel32.dll"
info = win32api.GetFileVersionInfo(filename, "\\")

其中,filename 参数为需要获取版本信息的 DLL 或 EXE 文件名(需要带上完整路径),"\\" 参数为固定参数,表示获取文件版本信息的根节点。

2. VerQueryValue 函数

VerQueryValue 函数用于获取 GetFileVersionInfo 函数返回的版本信息,需要指定所需信息的键名。它的用法如下:

import win32api

filename = "C:\Windows\System32\kernel32.dll"
info = win32api.GetFileVersionInfo(filename, "\\")
version = win32api.VerQueryValue(info, '\\VarFileInfo\\Translation')[0]

其中,filename 参数、info 参数的含义同 GetFileVersionInfo 函数的参数,'\VarFileInfo\Translation' 参数为固定参数,表示获取版本信息的翻译节点。

上面的 version 变量获取到的是一个包含翻译节点值的字节数组,需要进行解码才能得到可读的字符串。如下所示:

import win32api

filename = "C:\Windows\System32\kernel32.dll"
info = win32api.GetFileVersionInfo(filename, "\\")
version = win32api.VerQueryValue(info, '\\VarFileInfo\\Translation')[0]
version_string = '%d.%d.%d.%d' % \
                 (win32api.LOWORD(version[0]), 
                  win32api.HIWORD(version[0]), 
                  win32api.LOWORD(version[1]), 
                  win32api.HIWORD(version[1]))
print(version_string)

上述代码的输出结果就是指定的 DLL 或 EXE 文件的版本号。

3. 示例说明

下面给出两个实际的操作示例:

示例 1:获取Windows操作系统的一个系统DLL文件的版本号

import win32api

filename = "C:\Windows\System32\kernel32.dll"
info = win32api.GetFileVersionInfo(filename, "\\")
version = win32api.VerQueryValue(info, '\\VarFileInfo\\Translation')[0]
version_string = '%d.%d.%d.%d' % \
                 (win32api.LOWORD(version[0]), 
                  win32api.HIWORD(version[0]), 
                  win32api.LOWORD(version[1]), 
                  win32api.HIWORD(version[1]))
print(version_string)

输出结果为:

10.0.19041.1052

示例 2:获取应用程序的Exe文件的版本号

import win32api

filename = "C:\myapp\myapp.exe"
info = win32api.GetFileVersionInfo(filename, "\\")
version = win32api.VerQueryValue(info, '\\VarFileInfo\\Translation')[0]
version_string = '%d.%d.%d.%d' % \
                 (win32api.LOWORD(version[0]), 
                  win32api.HIWORD(version[0]), 
                  win32api.LOWORD(version[1]), 
                  win32api.HIWORD(version[1]))
print(version_string)

其中,filename 参数需要修改为指定应用程序的 EXE 文件路径。输出结果为该应用程序的版本号。

至此,Python 获取 DLL 和 EXE 文件版本号的方法就介绍完毕了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python获取DLL和EXE文件版本号的方法 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • 关于Python形参打包与解包小技巧分享

    关于Python形参打包与解包小技巧分享 在Python中,函数形参打包与解包是一种常用的技巧,可以让我们更加高效地处理函数参数。本文将详细介绍如何使用Python形参打包与解包。 形参打包 形参打包是指将多个形参打包成一个序列(例如元组或列表),在函数内部作为一个形参进行处理。具体来讲,我们可以在函数定义时,使用*操作符来将多个形参打包成一个元组或列表。例…

    python 2023年5月14日
    00
  • 详解Python 根据名称创建存档和查找文件

    下面是Python根据名称创建存档和查找文件的完整攻略。 创建存档 在Python中,可以使用内置的zipfile模块来创建存档文件。下面是创建存档的步骤: 导入zipfile模块。 import zipfile 创建ZipFile对象并指定存档文件路径和模式(w为覆盖写模式,a为追加模式)。 with zipfile.ZipFile(‘example.zi…

    python-answer 2023年3月25日
    00
  • python使用三角迭代计算圆周率PI的方法

    下面是详细讲解“Python使用三角迭代计算圆周率PI的方法”的完整攻略。 1. 什么是三角迭代计算圆周率PI的方法? 三角迭代计算圆周率PI的方法是一种使用三角函数计算圆周率的方法。该方法基于圆的周长与直径比值为PI,通过计算正多边形的周长和直径的比值,逐步逼近圆的周长与直径的比值,从而得到圆周率的近似值。 2. Python使用三角迭代计算圆周率PI的方…

    python 2023年5月14日
    00
  • 用Python计算三角函数之acos()方法的使用

    当我们需要计算三角函数时,acos()方法是非常有用的。acos()方法是Python 的标准数学库中的一部分,它可以计算给定角度的反余弦值,返回值范围是0-π。 以下是使用acos()方法计算三角函数的完整攻略: 1.引入math模块 首先,在使用acos()方法之前,需要引入Python的标准数学库 – math。代码如下所示: import math …

    python 2023年6月3日
    00
  • python 详解turtle画爱心代码

    让我来详细讲解一下“python 详解turtle画爱心代码”的完整攻略。 什么是turtle模块? Turtle是Python内置的一个标准库,它在画布上绘制图形,可以代替人手绘画。 如何使用turtle模块画爱心? 在Python中,使用turtle模块可以轻松地画出一个漂亮的爱心,以下是具体步骤: 第一步:导入turtle模块 import turtl…

    python 2023年5月19日
    00
  • python基础教程之csv文件的写入与读取

    Python基础教程之CSV文件的写入与读取攻略 什么是CSV文件? CSV文件是纯文本文件,它的文件后缀为.csv,全称是Comma Separated Values,即逗号分隔的值。它与Excel、数据库等软件是兼容的,因此在数据分析、数据转换等方面被广泛应用。 CSV文件读取 在Python中读取CSV文件,我们可以使用csv模块提供的一系列方法。cs…

    python 2023年6月3日
    00
  • Python decode() ‘utf-8’ 编解码器无法解码位置 0 的字节 0xff:无效的起始字节

    【问题标题】:Python decode() ‘utf-8’ codec can’t decode byte 0xff in position 0: invalid start bytePython decode() ‘utf-8’ 编解码器无法解码位置 0 的字节 0xff:无效的起始字节 【发布时间】:2023-04-02 00:15:01 【问题描述】…

    Python开发 2023年4月8日
    00
  • Python实现字符串与数组相互转换功能示例

    下面是Python实现字符串与数组相互转换功能的完整攻略。 1. 字符串转换为数组 将字符串转换为数组可以使用Python内置的split()方法。split()方法接受一个参数,用于指定以哪个字符为分隔符将字符串分割成多个子字符串,然后转换成数组。以下示例演示了如何将输入的字符串转换为数组并打印输出: input_str = "Hello,Wor…

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部