Извлечь версию сборки из DLL с помощью Python

Я пытаюсь извлечь некоторую информацию о версии из DLL, используя python. Я прочитал этот вопрос: Атрибут версии файла Windows Python

Это было полезно, но мне также нужно получить «версию сборки» из DLL. Это там, когда я щелкаю правой кнопкой мыши и смотрю на вкладку версий, но не уверен, как я извлекаю это с помощью python.

На этой странице: http://timgolden.me.uk/python/win32_how_do_i/get_dll_version.html

Тим Голден говорит:

Вы можете использовать немного более запутанный код, зависящий от языка, в демонстрациях, которые поставляются с pywin32, чтобы найти строки в поле под ним.

Может ли кто-нибудь указать мне пример, который может быть полезен? Я посмотрел в каталогах win32api, но ничего очевидного. Найду ли я там решение?


person Mark Irvine    schedule 24.06.2011    source источник


Ответы (2)


Я не уверен, что вы можете получить эту информацию, используя собственный код. Обычный способ получить информацию о сборке — запустить код .Net (например, C#). Поэтому я предполагаю, что для того, чтобы сделать то же самое с python, вам нужно запустить какой-нибудь интерпретатор .Net python. См., например, http://pythonnet.github.io/.

person Assaf Lavie    schedule 24.06.2011

Если вы не хотите вводить зависимость от Python.Net, вы также можете напрямую использовать win32 API:

from win32api import GetFileVersionInfo, LOWORD, HIWORD

def get_version_number (filename):
   info = GetFileVersionInfo (filename, "\\")
   ms = info['FileVersionMS']
   ls = info['FileVersionLS']
   return HIWORD (ms), LOWORD (ms), HIWORD (ls), LOWORD (ls)

Источник: http://timgolden.me.uk/python/win32_how_do_i/get_dll_version.html< /а>

person Tom Makin    schedule 15.05.2018
comment
Для этого требуется pywin32 я полагаю - person Zimano; 09.03.2020