Flaky Posted January 21, 2013 Share Posted January 21, 2013 I am trying to make my application a little bit more user-friendly, since it will be distributed at my place of work. So I have begun using file versions when I compile my script. Is it possible to use a compiler directive as a variable elsewhere in the program? #AutoIt3Wrapper_Res_Fileversion=1.0.1 I want that fileversion to be used in a small GUI that is accessible in a help menu. But I don't want to remember to update the "v1.0.1" every single time I compile my program. Link to comment Share on other sites More sharing options...
Mat Posted January 21, 2013 Share Posted January 21, 2013 (edited) FileGetVersion #AutoIt3Wrapper_Res_Fileversion=1.0.1 #include <Constants.au3> MsgBox($MB_SYSTEMMODAL, Default, FileGetVersion(@ScriptFullPath)) Try compiling and then running. This won't work when not compiled, so you might have to do some hack involving reading the script or something. Edited January 22, 2013 by Mat Flaky 1 AutoIt Project Listing Link to comment Share on other sites More sharing options...
Mat Posted January 21, 2013 Share Posted January 21, 2013 And here's a snippet for getting it from the source code if the script is not compiled. #AutoIt3Wrapper_Res_Fileversion=1.0.1 #include <Constants.au3> MsgBox($MB_SYSTEMMODAL, Default, "Version: " & _GetScriptVersion()) Func _GetScriptVersion() If @Compiled Then Return FileGetVersion(@ScriptFullPath) Else Local $sText = FileRead(@ScriptFullPath) If @error Then Return SetError(1, 0, "0.0.0.0") ; File couldn't be read Local $asRet = StringRegExp($sText, "(?i)(?:\A|\n)\#AutoIt3Wrapper\_Res\_Fileversion\=(.*?)(?:\z|\n)", 3) If @error Then Return SetError(2, 0, "0.0.0.0") ; No version number found Return $asRet[0] EndIf EndFunc ;==>_GetScriptVersion Flaky 1 AutoIt Project Listing Link to comment Share on other sites More sharing options...
guinness Posted January 21, 2013 Share Posted January 21, 2013 Nice little snippet. UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
MilesAhead Posted January 21, 2013 Share Posted January 21, 2013 The include file MilesAheadMisc.au3 in this has a _ScriptVersion() function to return the file version from compiled programs, and both au3 and ahk source. Requires that the comple settings are saved in the source file. Just enable auto-increment to avoid manually updating. Also the included utility, SaveVersion is handy to put in the SendTo folder. If you right click exe and scripts that have file version info, it copies them to files with the file version appended to the name like MyScript.exe and MyScript.au3 copy to MyScript_1_0_0_0.exe and MyScript_1_0_0_0.au3 etc.. My Freeware Page Link to comment Share on other sites More sharing options...
Flaky Posted January 22, 2013 Author Share Posted January 22, 2013 FileGetVersion #AutoIt3Wrapper_Res_Fileversion=1.0.1 #include <Constants.au3> MsgBox($MB_SYSTEMMODAL, Default, FileGetVersion(@ScriptFullPath)) Try compiling and then running. This won't work when compiled, so you might have to do some hack involving reading the script or something. Thanks Mat. That is exactly what I needed. Link to comment Share on other sites More sharing options...
Bester Posted January 23, 2014 Share Posted January 23, 2014 (edited) And here's a snippet for getting it from the source code if the script is not compiled. #AutoIt3Wrapper_Res_Fileversion=1.0.1 #include <Constants.au3> MsgBox($MB_SYSTEMMODAL, Default, "Version: " & _GetScriptVersion()) Func _GetScriptVersion() If @Compiled Then Return FileGetVersion(@ScriptFullPath) Else Local $sText = FileRead(@ScriptFullPath) If @error Then Return SetError(1, 0, "0.0.0.0") ; File couldn't be read Local $asRet = StringRegExp($sText, "(?i)(?:\A|\n)\#AutoIt3Wrapper\_Res\_Fileversion\=(.*?)(?:\z|\n)", 3) If @error Then Return SetError(2, 0, "0.0.0.0") ; No version number found Return $asRet[0] EndIf EndFunc ;==>_GetScriptVersion And this is exactly what i needed, thank you very much for this. Edited January 23, 2014 by Bester 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