GetFileVersion: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
m (Adding new author and category links.)
No edit summary
Line 2: Line 2:


== Links ==
== Links ==
; Latest version of headers "nsh.zip":
; Latest version of headers "nsh.zip":
: http://forums.winamp.com/showthread.php?s=&threadid=203228&goto=lastpost
: http://forums.winamp.com/showthread.php?s=&threadid=203228&goto=lastpost


If a function is used without an header, you should put the function below in your script before calling it.
If a function is used without header, put the function code in your script before calling it.


== The Function ==
== The Function Description==
<highlight-nsis>/*
 
<highlight-nsis>
____________________________________________________________________________
____________________________________________________________________________


Line 17: Line 19:




Gets the version information from executable file.
Get version information from executable file.




Line 30: Line 32:
-Error flag if file isn't exist
-Error flag if file isn't exist
-Error flag if file isn't contain version information
-Error flag if file isn't contain version information
</highlight-nsis>






Example:
<b>Example:</b>
Section
<highlight-nsis>Section
${GetFileVersion} "C:\ftp\program.exe" $R0
${GetFileVersion} "C:\ftp\program.exe" $R0
; $R0="1.1.0.12"
; $R0="1.1.0.12"
SectionEnd*/
SectionEnd
 
</highlight-nsis>


;---------------------------------------------------------------------------
== The Function Code==


<highlight-nsis>
Function GetFileVersion
Function GetFileVersion
!define GetFileVersion `!insertmacro GetFileVersionCall`
!define GetFileVersion `!insertmacro GetFileVersionCall`

Revision as of 14:41, 4 July 2005

Author: Instructor (talk, contrib)


Links

Latest version of headers "nsh.zip"
http://forums.winamp.com/showthread.php?s=&threadid=203228&goto=lastpost

If a function is used without header, put the function code in your script before calling it.

The 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

The 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