pywin32: GetFileVersionInfo возвращает 1812 - PullRequest
0 голосов
/ 28 апреля 2018

Я использую модуль pyWin32 следующим образом:

import win32api
from win32api import GetFileVersionInfo, LOWORD, HIWORD


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


if __name__ == '__main__':
   print(get_version_number ("./aa.txt"))

Ошибка:

Traceback (most recent call last):
  File ".\file_filter.py", line 70, in <module>
    print(get_version_number ("./aa.txt"))
  File ".\file_filter.py", line 60, in get_version_number
    info = win32api.GetFileVersionInfo(filename,"\\")
pywintypes.error: (1812, 'GetFileVersionInfo:GetFileVersionInfoSize', ...)

Я получаю вышеуказанную ошибку. Однако он прекрасно работает для следующего файла: "./python.exe".

1 Ответ

0 голосов
/ 28 апреля 2018

Выдержка из этой ссылки:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms647003(v=vs.85).aspx

GetFileVersionInfo получал информацию о версии из двоичного файла (exe / dll). В настоящее время он запрашивает фиксированную версию из файла, не зависящего от языка (exe / dll), и нефиксированную часть из файла mui, объединяет их и возвращает пользователю.

Единственный доступный тип файла для GetFileVersionInfo - * .exe или * .dll. Тем не менее, вы запрашиваете файл * .txt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...