Например, корпоративное ПО. Можно ли проверять наличие заданного файла по заданному локальному пути? В идеале, считать его MD5 (или другой хэш), который и считать номером версии.
У нас есть такая возможность, но пока это через клиентов только реализуемо. В конфигураторе клиента (nieclientcfg)задается путь, при сборе информации читается его версия. (Эту информацию можно посмотреть через контекстное меню файла "Свойства", вкладка "Подробно" ) Настройки производятся на вкладке "Версии файлов". Если Вы используете логон-скрипт, то можете настроить клиент и определить версию.
PS Думаю считать хэш md5 вариант не очень удобный. Мы рекомендуем использовать стандартные механизмы используемые ОС. А именно добавление файла ресурсов, содержащего информацию о версии. При использовании файла ресурсов версии файлов отображаются в проводнике в свойствах файла, не нужна таблица соответствия хэшей, а также какой-либо их подсчёт. Подсчёт хэшей более ресурсоемкий вариант.
Комментарии
В конфигураторе клиента (nieclientcfg)задается путь, при сборе информации читается его версия. (Эту информацию можно посмотреть через контекстное меню файла "Свойства", вкладка "Подробно" )
Настройки производятся на вкладке "Версии файлов".
Если Вы используете логон-скрипт, то можете настроить клиент и определить версию.
PS Думаю считать хэш md5 вариант не очень удобный. Мы рекомендуем использовать стандартные механизмы используемые ОС. А именно добавление файла ресурсов, содержащего информацию о версии.
При использовании файла ресурсов версии файлов отображаются в проводнике в свойствах файла, не нужна таблица соответствия хэшей, а также какой-либо их подсчёт. Подсчёт хэшей более ресурсоемкий вариант.
Если это ПО, разрабатывается Вашими разработчиками, то чтобы прописать версию нужно добавить в ресурсы файл примерно такого содержания. Можно про это здесь почитать.
http://msdn.microsoft.com/en-us/library/windows/desktop/aa381058(v=vs.85).aspx
#define IDR_VERSION1 1
IDR_VERSION1 VERSIONINFO LOADONCALL MOVEABLE DISCARDABLE IMPURE
FILEVERSION 6,1,0,0
PRODUCTVERSION 6,1,0,0
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS 0
FILEOS VOS_DOS_WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE 0
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "041904E3"
BEGIN
VALUE "CompanyName", "10-Страйк\0"
VALUE "FileDescription", "Инвентаризация Компьютеров\0"
VALUE "ProductName", "10-Страйк Инвентаризация Компьютеров\0"
VALUE "FileVersion", "6.1\0"
VALUE "ProductVersion", "6.1\0"
VALUE "InternalName", "NetworkinventoryExplorer.exe\0"
VALUE "LegalCopyright", "10-Strike (c)\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0419, 1251
END
END
Получение версий файлов через WMI мы доработаем в одной из следующих версий ПО