1

I want to get the properties(file version, company, language, etc) of a DLL file using Python and the Windows API.

Fabián Heredia Montiel
  • 1,687
  • 1
  • 16
  • 30

1 Answers1

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