Jump to content

Using AutoItv3 Wrapper Directives as Variables


Flaky
 Share

Recommended Posts

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

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
Link to comment
Share on other sites

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
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

  • 1 year later...

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
Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...