下面我将详细讲解 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技术站