Iczer Posted November 10, 2017 Share Posted November 10, 2017 FileGetVersion() gets $FV_FILEVERSION ("FileVersion") and $FV_PRODUCTVERSION ("ProductVersion") from 2nd place. How i can get those versions from 1st place ? (see dll *rc file) VS_VERSION_INFO VERSIONINFO FILEVERSION 1,2,3,4 <--------------(1) PRODUCTVERSION 1,2,3,4 <--------------(1) { BLOCK "StringFileInfo" { BLOCK "040904b0" { VALUE "CompanyName", "My Inc.\0" VALUE "FileDescription", "MyProg\0" VALUE "FileVersion", "1.0.0.0\0" <--------------(2) VALUE "LegalCopyright", "© 2013 My Inc. All Rights Reserved\0" VALUE "OriginalFilename", "MyProg.exe\0" VALUE "ProductName", "My Program\0" VALUE "ProductVersion", "1.0.0.0\0" <--------------(2) } } BLOCK "VarFileInfo" { VALUE "Translation", 0x409, 1200 } } Link to comment Share on other sites More sharing options...
funkey Posted November 11, 2017 Share Posted November 11, 2017 (edited) Try to use '_WinAPI_VerQueryRoot()' Edited November 11, 2017 by funkey Programming today is a race between software engineers striving tobuild bigger and better idiot-proof programs, and the Universetrying to produce bigger and better idiots.So far, the Universe is winning. Link to comment Share on other sites More sharing options...
funkey Posted November 11, 2017 Share Posted November 11, 2017 (edited) This should work. #include <WinAPIRes.au3> #include <WinAPISys.au3> Local $pData = 0 _WinAPI_GetFileVersionInfo(@AutoItExe, $pData) Local $tFixedFileInfo = _WinAPI_VerQueryRoot($pData) _WinAPI_FreeMemory($pData) Local $FileVersionMS = DllStructGetData($tFixedFileInfo, "FileVersionMS") Local $FileVersionLS = DllStructGetData($tFixedFileInfo, "FileVersionLS") Local $ProductVersionMS = DllStructGetData($tFixedFileInfo, "ProductVersionMS") Local $ProductVersionLS = DllStructGetData($tFixedFileInfo, "ProductVersionLS") Local $FV_Major = _WinAPI_HiWord($FileVersionMS) Local $FV_Minor = _WinAPI_LoWord($FileVersionMS) Local $FV_Build = _WinAPI_HiWord($FileVersionLS) Local $FV_Revision = _WinAPI_LoWord($FileVersionLS) Local $PV_Major = _WinAPI_HiWord($ProductVersionMS) Local $PV_Minor = _WinAPI_LoWord($ProductVersionMS) Local $PV_Build = _WinAPI_HiWord($ProductVersionLS) Local $PV_Revision = _WinAPI_LoWord($ProductVersionLS) ConsoleWrite("FileVersion:" & @TAB & $FV_Major & "." & $FV_Minor & "." & $FV_Build & "." & $FV_Revision & @CRLF) ConsoleWrite("ProductVersion:" & @TAB & $PV_Major & "." & $PV_Minor & "." & $PV_Build & "." & $PV_Revision & @CRLF) Edit: Forgot to free memory Edited November 12, 2017 by funkey Programming today is a race between software engineers striving tobuild bigger and better idiot-proof programs, and the Universetrying to produce bigger and better idiots.So far, the Universe is winning. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now