I want to get the properties(file version, company, language, etc) of a DLL file using Python and the Windows API.
Asked
Active
Viewed 1,460 times
1
-
possible duplicate of http://stackoverflow.com/questions/6470032/extract-assembly-version-from-dll-using-python – Fredrik Pihl Dec 25 '11 at 21:30
1 Answers
1
Try this
import os, win32api
ver_strings=('Comments','InternalName','ProductName',
'CompanyName','LegalCopyright','ProductVersion',
'FileDescription','LegalTrademarks','PrivateBuild',
'FileVersion','OriginalFilename','SpecialBuild')
fname = os.environ["comspec"]
d=win32api.GetFileVersionInfo(fname, '\\')
## backslash as parm returns dictionary of numeric info corresponding to VS_FIXEDFILEINFO struc
for n, v in d.iteritems():
print n, v
pairs=win32api.GetFileVersionInfo(fname, '\\VarFileInfo\\Translation')
## \VarFileInfo\Translation returns list of available (language, codepage) pairs that can be used to retreive string info
## any other must be of the form \StringfileInfo\%04X%04X\parm_name, middle two are language/codepage pair returned from above
for lang, codepage in pairs:
print 'lang: ', lang, 'codepage:', codepage
for ver_string in ver_strings:
str_info=u'\\StringFileInfo\\%04X%04X\\%s' %(lang,codepage,ver_string)
## print str_info
print ver_string, repr(win32api.GetFileVersionInfo(fname, str_info))
(requires pywin32).

Matthew Green
- 10,161
- 4
- 36
- 54

cgohlke
- 9,142
- 2
- 33
- 36