Что нового

Получение информации с FileGetVersion

Andrey_A

Продвинутый
Сообщения
323
Репутация
68
Подскажите как получить информацию, когда в ресурсах такое:
Код:
BLOCK "StringFileInfo"
{
	BLOCK "04090000"
	{
		VALUE "FileDescription", "AkelPad (x86) text editor"
		VALUE "FileVersion", "0, 0, 0, 0"
		VALUE "LegalCopyright", "Copyright © AkelSoft 2003-2014"
		VALUE "OriginalFilename", "AkelPad.exe"
		VALUE "ProductName", "AkelPad"
		VALUE "ProductVersion", "0, 0, 0, 0"
	}
}

BLOCK "VarFileInfo"
{
	VALUE "Translation", 0x0419 0x0000
}
}
В справке написано:
Язык и кодовая страница могут быть использованы, если необходимо различать имена полей на разных языках, например, "080904b0\Comments"

Но получить так не получается:
Код:
$sinfo=FileGetVersion('D:\AkelPad.exe','04190000\LegalCopyright')


А как правильно? файл для теста
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Код:
_WinAPI_VerQueryValue

в справке к версии AutoIT 3.3.12.0
 
Автор
A

Andrey_A

Продвинутый
Сообщения
323
Репутация
68
в справке к версии AutoIT 3.3.12.0
В справке приведён пример с shell32.dll - с этим файлом и функция FileGetVersion нормально справляется...
Мне так и не удалось получить информацию для тестового файла с помощью _WinAPI_GetFileVersionInfo и _WinAPI_VerQueryValue
 

Skif_off

Знающий
Сообщения
173
Репутация
12
FileGetVersion() вообще как-то странно работает:
Код:
$sinfo1 = FileGetVersion('...\AkelPad.exe') ;показывает версию правильно
;а это:
$sinfo1 = FileGetVersion('...\AkelPad.exe', 'Comments')
$sinfo2 = FileGetVersion('...\AkelPad.exe', 'InternalName')
$sinfo3 = FileGetVersion('...\AkelPad.exe', 'ProductName')
$sinfo4 = FileGetVersion('...\AkelPad.exe', 'CompanyName')
$sinfo5 = FileGetVersion('...\AkelPad.exe', 'LegalCopyright')
$sinfo6 = FileGetVersion('...\AkelPad.exe', 'ProductVersion')
$sinfo7 = FileGetVersion('...\AkelPad.exe', 'FileDescription')
$sinfo8 = FileGetVersion('...\AkelPad.exe', 'LegalTrademarks')
$sinfo9 = FileGetVersion('...\AkelPad.exe', 'PrivateBuild')
$sinfo10 = FileGetVersion('...\AkelPad.exe', 'FileVersion')
$sinfo11 = FileGetVersion('...\AkelPad.exe', 'OriginalFilename')
$sinfo12 = FileGetVersion('...\AkelPad.exe', 'SpecialBuild')
MsgBox(0, '', $sinfo1 & @CRLF & $sinfo2 & @CRLF & $sinfo3 & @CRLF & $sinfo4 & @CRLF & $sinfo5 & @CRLF & $sinfo6 & @CRLF & $sinfo7 & @CRLF & $sinfo8 & @CRLF & $sinfo9 & @CRLF & $sinfo10 & @CRLF & $sinfo11 & @CRLF & $sinfo12)
;ни в одной строке не содержит версию О_о
 
Верх