Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Вытащить версию из .exe файла


(Виталий Коряков) #1

Возникла необходимость проверки версии .exe файла.
В контекстном меню -> детали -> Версия файла винда видит версию. Каким образом ее можно вытащить?


(Kolesnik Nickolay) #2

(Дмитрий Жарий) #3

Как вариант, можно запустить внешнюю тулу и скормить ей файл, например Sigcheck


(Mykhailo Poliarush) #4

Нужно использовать win32api http://sourceforge.net/projects/pywin32/ документация здесь http://docs.activestate.com/activepython/2.4/pywin32/win32api__GetFileVersionInfo_meth.html


(Виталий Коряков) #5

О, спаисбо за советы, я так понял win23api не идет в стандартную поставку?


(Mykhailo Poliarush) #6

Так точно, нужно качать и устанавливать самостоятельно.


(Виталий Коряков) #7

Миша, конкрето win32api я не могу найти, все что есть - это pywin32.


Установил его с exe-шника - изменений никаких, Питон не видит модулей win32api, pywin23…


(Mykhailo Poliarush) #8

Ну я вот взял pywin32-218.win32-py2.7.exe
Дальше выполняю код и все хорошо

from win32api import GetFileVersionInfo
info = GetFileVersionInfo("c:\KiesSetup.exe", "\\")
print info
from win32api import LOWORD, HIWORD
print HIWORD (ms), LOWORD (ms), HIWORD (ls), LOWORD (ls)
{u'FileFlagsMask': 63, u'FileType': 2, u'FileVersionMS': 1048576, u'FileVersionLS': 400, u'Signature': -17890115, u'File Subtype': 0, u'FileFlags': 0, u'ProductVersionLS': 0, u'FileDate': None, u'ProductVersionMS': 1048576, u'FileOS': 4, u'StrucVersion': 65536}
16 0 0 400

Может быть ты что-то не то установил?


(Виталий Коряков) #9

Странно, установил [pywin32-218.win-amd64-py2.7][1]
[1]: http://sourceforge.net/projects/pywin32/files/pywin32/Build%20218/pywin32-218.win-amd64-py2.7.exe/download
версию… Что еще проще установки с exe-файла…


(Mykhailo Poliarush) #10

Как ты запускаешь, и что ты запускаешь? Можно описать детально?


(Виталий Коряков) #11

Интересная ситуация, перегрузился - запустил еще раз. На этот раз открылся совершенно другой инсталлер, все установилось, и работает. Спасибо ).