New Lexer:
; String version info for execs by SKAN, wOxxOm
; http://www.autohotkey.com/forum/viewtopic.php?p=233188#233188
; http://www.autohotkey.com/forum/viewtopic.php?p=52148#52148
FileGetVersionInfo( peFile="", StringFileInfo="" ) {
FSz := DllCall( "Version\GetFileVersionInfoSizeA",Str,peFile,UInt,0 )
IfLess, FSz,1, Return -1
VarSetCapacity( FVI, FSz, 0 ), VarSetCapacity( Trans,8 )
DllCall( "Version\GetFileVersionInfoA", Str,peFile, Int,0, Int,FSz, UInt,&FVI )
If ! DllCall( "Version\VerQueryValueA", UInt,&FVI, Str,"\VarFileInfo\Translation"
, UIntP,Translation, UInt,0 )
Return -2
If ! DllCall( "msvcrt.dll\sprintf", Str,Trans, Str,"%08X", UInt,NumGet(Translation+0) )
Return -4
subBlock := "\StringFileInfo\" SubStr(Trans,-3) SubStr(Trans,1,4) "\" StringFileInfo
If ! DllCall( "Version\VerQueryValueA", UInt,&FVI, Str,SubBlock, UIntP,InfoPtr, UInt,0 )
Return
VarSetCapacity( Info, DllCall( "lstrlen", UInt,InfoPtr ) )
DllCall( "lstrcpy", Str,Info, UInt,InfoPtr )
Return Info
}