Function Description
____________________________________________________________________________
GetFileVersion
____________________________________________________________________________
Thanks KiCHiK (Based on his example for command "GetDLLVersion")
Get version information from executable file.
Syntax:
${GetFileVersion} "[Executable]" $var
"[Executable]" ; Executable file (*.exe *.dll ...)
$var ; Result: Version number
Note:
-Error flag if file isn't exist
-Error flag if file isn't contain version information
Example:
Section
${GetFileVersion} "C:\ftp\program.exe" $R0
; $R0="1.1.0.12"
SectionEnd
[edit]
Function Code
Function GetFileVersion
!define GetFileVersion `!insertmacro GetFileVersionCall`
!macro GetFileVersionCall _FILE _RESULT
Push `${_FILE}`
Call GetFileVersion
Pop ${_RESULT}
!macroend
Exch $0
Push $1
Push $2
Push $3
Push $4
Push $5
Push $6
ClearErrors
GetDllVersion '$0' $1 $2
IfErrors error
IntOp $3 $1 / 0x00010000
IntOp $4 $1 & 0x0000FFFF
IntOp $5 $2 / 0x00010000
IntOp $6 $2 & 0x0000FFFF
StrCpy $0 '$3.$4.$5.$6'
goto end
error:
SetErrors
StrCpy $0 ''
end:
Pop $6
Pop $5
Pop $4
Pop $3
Pop $2
Pop $1
Exch $0
FunctionEnd