Windows获取exe文件版本及产品版本

793 阅读1分钟

一、获取*.exe程序的文件版本

1、方法一:

from win32com.client import Dispatch

def get_version_via_com(file_name):
    parser = Dispatch("Scripting.FileSystemObject")
    version = parser.GetFileVersion(file_name)
    return version
    
if __name__ == "__main__":
    file_name = r"×.exe"
    print(get_version_via_com(file_name))

2、方法二:

import os
import win32api

def getFileVersion(file_name):
    info = win32api.GetFileVersionInfo(file_name, os.sep)
    ms = info['FileVersionMS']
    ls = info['FileVersionLS']
    version = '%d.%d.%d.%03d' % (win32api.HIWORD(ms), win32api.LOWORD(ms), win32api.HIWORD(ls), win32api.LOWORD(ls))
    return version
    
if __name__ == "__main__":
    file_name = r"×.exe"
    print(getFileVersion(file_name))

二、获取.exe程序的产品版本号

import os
import win32api

def getProductVersion(file_name):
    info = win32api.GetFileVersionInfo(file_name, os.sep)
    ms = info['ProductVersionMS']
    ls = info['ProductVersionLS']
    version = '%d.%d.%d.%03d' % (win32api.HIWORD(ms), win32api.LOWORD(ms), win32api.HIWORD(ls), win32api.LOWORD(ls))
    return version
    
if __name__ == "__main__":
    file_name = r"×.exe"
    print(getProductVersion(file_name))