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 2023年6月3日
    00
  • Python 安装第三方库 pip install 安装慢安装不上的解决办法

    下面是针对“Python安装第三方库pip install安装慢安装不上的解决办法”的完整攻略: 1. 安装pip 在使用pip安装第三方库之前,我们需要先安装pip。如果你已经安装了Python3.4及以上版本,pip应该已经自带了。可以在终端输入以下命令,检查是否有pip的版本: pip –version 如果没有安装pip,可以通过以下命令安装: c…

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

    Python基础教程之CSV格式文件的写入与读取 在Python中,CSV格式文件是一种常见的文件格式,它有多行文本数据组成,每行数据由多个字段组成,各字段之间用逗号分隔,最后一行无需换行符,特别适合存储表格化的数据,如日程计划、费用清单等等。 本篇攻略将详细介绍如何使用Python对CSV格式文件进行读写操作。 CSV文件的读取 在Python中,我们可以…

    python 2023年6月3日
    00
  • python模块shutil函数应用示例详解教程

    Python模块shutil函数应用示例详解教程 简介 Python中的shutil模块提供了一系列文件和文件夹操作的函数,包括复制、移动、改名、删除等操作。本文将提供一些常用的示例,帮助大家更好的使用shutil进行文件和文件夹操作。 常用函数 shutil模块提供了许多常用的函数,下面列出一些常用的函数及其功能: shutil.copy(src, dst…

    python 2023年6月2日
    00
  • Python的文本常量与字符串模板之string库

    Python的文本常量与字符串模板之string库 在Python中,文本处理是一个非常常见的任务。Python提供了多种处理文本的方法和库,其中包括string库。string库提供了多种文本常量和字符串模板,可以方便地处理文本。本文将总结Python的文本常量与字符串模板之string库的使用方法,并提供两个示例说明。 文本常量 string库提供了多个…

    python 2023年5月14日
    00
  • Python基于SMTP发送邮件的方法

    当我们需要在Python程序中发送电子邮件时,可以使用SMTP(Simple Mail Transfer Protocol)协议。Python内置了smtplib和email两个库,它们提供了发送邮件所需的所有功能。下面将提供Python基于SMTP发送邮件的完整攻略,包括邮件发送的几个步骤和示例说明。 准备工作 在使用Python内置库发送邮件时,需要先准…

    python 2023年6月5日
    00
  • 从零学Python之引用和类属性的初步理解

    下面是《从零学Python之引用和类属性的初步理解》的完整攻略: 一、引用 在Python中,变量赋值时会创建一个对象并将变量名指向该对象,这个过程就是变量引用。 1. 可变对象和不可变对象 Python中有可变对象和不可变对象两个概念。其中,不可变对象包括数字、字符串、元组等;可变对象包括列表、字典等。当一个不可变类型的对象被赋给另外一个变量时,实际上是创…

    python 2023年5月18日
    00
  • Python变量格式化输出实现原理解析

    Python变量格式化输出是指根据格式化字符串的要求,将变量的值进行格式化输出。格式化输出是Python进行输出的常用方式之一,它方便了我们的输出和展示数据。 格式化字符串 格式化字符串是由格式化代码和普通字符组成的字符串。格式化代码以百分号(%)开头,然后紧跟着转换说明符。例如,以下为格式化字符串的标准格式: format_specifier % (var…

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