概要

exeファイルの右クリック時

「プロパティ」⇒「詳細」タブ⇒「ファイルバージョン」

にて記述されているファイルバージョンを取得する

コード

※メモ帳のバージョン

from win32api import GetFileVersionInfo, LOWORD, HIWORD
def get_exe_version(filename):
	try:
		info = GetFileVersionInfo (filename, "\\\\")
		ms = info['FileVersionMS']
		ls = info['FileVersionLS']
		hm = HIWORD(ms)
		lm = LOWORD(ms)
		hl = HIWORD(ls)
		ll = LOWORD(ls)
		return (hm,lm,hl,ll)
	except:
		return (0,0,0,0)

if __name__ == '__main__':
	filename = r"C:\\Windows\\system32\\notepad.exe"
	print(get_exe_version(filename))

結果

(6, 1, 7601, 23403)

ファイルバージョン詳細

区分

バージョンの種類

アセンブリバージョン(AssemblyVersion)

厳密名付きのアセンブリにバインディングを行う際に使用するバージョン番号。安易に変更するとバインドできなくなります。VisualStudioのプロジェクトプロパティで設定できる。AssemblyInfo.csによる指定は、[assembly: AssemblyVersion(“1.1.1.0”)]

ファイルバージョン(AssemblyFileVersion)

エクスプローラでファイルのプロパティを見た際にファイルバージョンとして表示されるバージョン番号。アセンブリバージョンのようにバインド情報としては使われない、単なる情報としてのバージョン番号。VisualStudioのプロジェクトプロパティで設定できる。AssemblyInfo.csによる指定は、[assembly: AssemblyFileVersion(“4.4.4.0”)]