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 词典(Dict) 加载与保存示例

    接下来我将为你详细讲解 Python 词典(Dict) 加载与保存示例的完整攻略。 什么是 Python 词典(Dict)? Python 中的词典(Dict)是一种无序、可变的集合数据类型,用于存储以键-值对形式保存的数据。 以下是一种简单的词典示例: person = {‘name’: ‘Alice’, ‘age’: 25, ‘country’: ‘Ca…

    python 2023年5月13日
    00
  • Python matplotlib画图实例之绘制拥有彩条的图表

    下面是关于“Python matplotlib画图实例之绘制拥有彩条的图表”的完整攻略: 标题 首先,你需要在你的Python环境中安装matplotlib库(如果你还没有安装的话): pip install matplotlib 接下来,让我们看一下如何绘制拥有彩条的图表。 步骤 步骤1:导入必要的库 在开始之前,我们需要导入一些必要的库: import …

    python 2023年5月20日
    00
  • 如何在Python中查询MySQL数据库中的数据?

    以下是在Python中查询MySQL数据库中的数据的完整使用攻略。 查询MySQL数据库中的数据简介 在Python中,可以使用mysql.connector模块连接MySQL数据库,并使用SELECT语句查询数据。查询结果可以使用游标对象fetchall()方法获取。 步骤1:导入模块 在Python中,使用mysql.connector模块连接MySQL…

    python 2023年5月12日
    00
  • Python正则表达式 r'(.*) are (.*?) .*’的深入理解

    Python正则表达式 r'(.) are (.?) .*’的深入理解 正则表达式是一种强大的文本处理工具,可以用于各种本处理任务,如数据清洗、文本分析、信息提取等。在Python中,我们可以使用re模块来操作正则表达式。本攻略将详细讲解Python正则表达式中的r'(.) are (.?) .*’,括正则表达式中的元字符、获组、非贪婪匹配等概念,以及如何使…

    python 2023年5月14日
    00
  • 20非常有用的Python单行代码分享

    以下是“20非常有用的Python单行代码分享”的详细讲解: 将列表展开为单个列表 flat_list = [item for sublist in nested_list for item in sublist] 这行代码可以将嵌套列表展开为单个列表。例如,如果我们有一个嵌套列表[[1, 2], [3, 4], [5, 6]],我们可以使用这行代码将其展开…

    python 2023年5月13日
    00
  • python针对excel的操作技巧

    下面我将为您详细讲解“Python针对Excel的操作技巧”的完整实例教程。 1. Python操作Excel的前置准备 在使用Python进行Excel操作之前,需要进行一些前置准备: 安装Python的第三方模块openpyxl,可以在命令行下输入pip install openpyxl进行安装。 准备Excel文件。 2. 实现Excel数据读取操作 …

    python 2023年5月13日
    00
  • Python中的进程操作模块(multiprocess.process)

    Python中的进程操作模块是multiprocess.process。这个模块可以用于在Python程序中创建和管理进程(也称为子进程)。下面将讲解如何使用该模块的完整攻略。 一、导入multiprocess.process模块 在Python程序中使用multiprocess.process模块,需要先导入该模块。可以使用以下语句: import mul…

    python 2023年5月19日
    00
  • Python自动化xpath实现自动抢票抢货

    下面是详细的Python自动化xpath实现自动抢票抢货的攻略: 什么是xpath? XPath是一门在XML文档中查找信息的语言,可以用于HTML文档的解析。XPath通过元素和属性进行遍历,并支持逻辑运算、通配符和函数等功能,是实现自动化抢票、抢货等功能的重要工具之一。 Python自动化xpath实现自动抢票抢货步骤 安装必要的库:selenium和l…

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