Jump to content
Sign in to follow this  
Flaky

Using AutoItv3 Wrapper Directives as Variables

Recommended Posts

Flaky

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.

Share this post


Link to post
Share on other sites
Mat

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 by Mat
  • Like 1

Share this post


Link to post
Share on other sites
Mat

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
  • Like 1

Share this post


Link to post
Share on other sites
guinness

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 parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Share this post


Link to post
Share on other sites
MilesAhead

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..

Share this post


Link to post
Share on other sites
Bester

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 by Bester

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×