Sign in to follow this  
Followers 0
guinness

Resource Update - Add resources to an executable or dll. Working (but limited) concept.

7 posts in this topic

#1 ·  Posted (edited)

Using the same code styling I have recently adopted within the last 5 months (since using C#), may I present to you a proof of concept for adding resources to an executable without the hassle. So far only RT_BITMAP and RT_RCDATA are supported, with inspiration taken from AutoItWrapper by Jos and wraithdu.

Any ideas and collaboration are welcome.

mLipok,

Don't worry about the comments/regions for now. -_0

#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6

#include <Array.au3>
#include <WinAPIRes.au3>

; MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/dd183374(v=vs.85).aspx
; BMP header: http://en.wikipedia.org/wiki/BMP_file_format
; Global Const $tagBITMAPFILEHEADER = 'align 2;word bfType;dword bfSize;word bfReserved1;word bfReserved2;dword bfOffBits'
Global Const $RESOURCE_GUID = 'B18E2CDC-0C56-11E4-9E4A-30540707A45E'
Global Const $RESOURCE_BITMAP_HEADER = 14 ; DllStructGetSize(DllStructCreate($tagBITMAPFILEHEADER))
Global Const $RESOURCE_LANG_DEFAULT = 0
Global Enum $RESOURCE, $RESOURCE_FIRSTINDEX
Global Enum $RESOURCE_FILEPATH, $RESOURCE_ID, $RESOURCE_INDEX, $RESOURCE_ISNOTUPDATE, $RESOURCE_UBOUND, $RESOURCE_UPDATE, $RESOURCE_MAX
Global Enum $RESOURCE_RESISADDED, $RESOURCE_RESLANG, $RESOURCE_RESLENGTH, $RESOURCE_RESNAMEORID, $RESOURCE_RESPATH, $RESOURCE_RESTYPE

#Region Example
Example()

Func Example()
    ; Copy @AutoItExe to the temp directory to add resources to.
    Local $sFilePath = @TempDir & '\' & $RESOURCE_GUID & '.exe'
    FileCopy(@AutoItExe, $sFilePath)

    ; Open the temp directory.
    ShellExecute(@TempDir)

    ; Create a resource object.
    Local $hResource = _Resource($sFilePath)
    For $i = 1 To 20
        ; Using the resource object, add the current script file as RT_RCDATA with the resource name of TEST_n.
        ConsoleWrite('Updated ' & $i & ': ' & _Resource_Update($hResource, @ScriptFullPath, 'TEST_' & $i, $RT_RCDATA) & @CRLF)
    Next

    ; Create an array of files successfully added to the executable.
    Local $aResFiles = _Resource_ToArray($hResource)
    _ArrayDisplay($aResFiles)

    ; Close the resource object.
    _Resource_Close($hResource)
EndFunc   ;==>Example
#EndRegion Example

Func _Resource($sFilePath)
    Local $aResource[$RESOURCE_FIRSTINDEX][$RESOURCE_MAX]
    $aResource[$RESOURCE][$RESOURCE_FILEPATH] = $sFilePath
    $aResource[$RESOURCE][$RESOURCE_UPDATE] = _WinAPI_BeginUpdateResource($aResource[$RESOURCE][$RESOURCE_FILEPATH])
    If @error Then
        $aResource[$RESOURCE][$RESOURCE_UPDATE] = Null
    Else
        $aResource[$RESOURCE][$RESOURCE_ID] = $RESOURCE_GUID
        $aResource[$RESOURCE][$RESOURCE_INDEX] = 0
        $aResource[$RESOURCE][$RESOURCE_ISNOTUPDATE] = False
        $aResource[$RESOURCE][$RESOURCE_UBOUND] = $RESOURCE_FIRSTINDEX
    EndIf
    Return $aResource
EndFunc   ;==>_Resource

Func _Resource_Close(ByRef $aResource)
    Local $bReturn = False
    If __Resource_IsAPI($aResource) And $aResource[$RESOURCE][$RESOURCE_UPDATE] Then
        $bReturn = _WinAPI_EndUpdateResource($aResource[$RESOURCE][$RESOURCE_UPDATE], $aResource[$RESOURCE][$RESOURCE_ISNOTUPDATE])
        $aResource[$RESOURCE][$RESOURCE_ISNOTUPDATE] = False
        If $bReturn Then $aResource[$RESOURCE][$RESOURCE_UPDATE] = Null
    EndIf
    Return $bReturn
EndFunc   ;==>_Resource_Close

Func _Resource_ToArray(ByRef $aResource)
    Local $aReturn = Null
    If __Resource_IsAPI($aResource) Then
        Local Enum $eRESPATH, $eRESNAMEORID, $eRESTYPE, $eRESLANG, $eRESMAX
        Local $aArray[$aResource[$RESOURCE][$RESOURCE_INDEX]][$eRESMAX], _
                $iIndex = 0
        For $i = $RESOURCE_FIRSTINDEX To $aResource[$RESOURCE][$RESOURCE_INDEX]
            If $aResource[$i][$RESOURCE_RESISADDED] Then
                $aArray[$iIndex][$eRESPATH] = $aResource[$i][$RESOURCE_RESPATH]
                $aArray[$iIndex][$eRESNAMEORID] = $aResource[$i][$RESOURCE_RESNAMEORID]
                $aArray[$iIndex][$eRESTYPE] = $aResource[$i][$RESOURCE_RESTYPE]
                $aArray[$iIndex][$eRESLANG] = $aResource[$i][$RESOURCE_RESLANG]
                ; $aArray[$iIndex][$eRESLENGTH] = $aResource[$i][$RESOURCE_RESLENGTH]
                $iIndex += 1
            EndIf
        Next
        ReDim $aArray[$iIndex][$eRESMAX]
        $aReturn = $aArray
        $aArray = 0
    EndIf
    Return $aReturn
EndFunc   ;==>_Resource_ToArray

Func _Resource_Update(ByRef $aResource, $sFilePath, $sResNameOrID, $iResType = Default, $iResLang = Default, $bIsAdd = True)
    Local $bReturn = False
    If __Resource_IsAPI($aResource) And $aResource[$RESOURCE][$RESOURCE_UPDATE] And FileExists($sFilePath) And Not (StringStripWS($sResNameOrID, $STR_STRIPALL) = '') Then
        If IsBool($bIsAdd) Then
            If $iResLang = Default Then $iResLang = $RESOURCE_LANG_DEFAULT
            If $iResType = Default Then $iResType = $RT_RCDATA
            If $bIsAdd Then
                Local $hFile = _WinAPI_CreateFile($sFilePath, 2, 2) ; Magic numbers!
                If Not @error And $hFile Then
                    Local $iBytes = 0, $iLength = FileGetSize($sFilePath), _
                            $pBuffer = 0, _
                            $tBuffer = 0

                    $aResource[$RESOURCE][$RESOURCE_INDEX] += 1
                    If $aResource[$RESOURCE][$RESOURCE_INDEX] >= $aResource[$RESOURCE][$RESOURCE_UBOUND] Then ; Re-size the array if required.
                        $aResource[$RESOURCE][$RESOURCE_UBOUND] = Ceiling($aResource[$RESOURCE][$RESOURCE_INDEX] * 1.3)
                        ReDim $aResource[$aResource[$RESOURCE][$RESOURCE_UBOUND]][$RESOURCE_MAX]
                    EndIf
                    $aResource[$aResource[$RESOURCE][$RESOURCE_INDEX]][$RESOURCE_RESPATH] = $sFilePath
                    $aResource[$aResource[$RESOURCE][$RESOURCE_INDEX]][$RESOURCE_RESLENGTH] = $iLength
                    $aResource[$aResource[$RESOURCE][$RESOURCE_INDEX]][$RESOURCE_RESLANG] = $iResLang
                    $aResource[$aResource[$RESOURCE][$RESOURCE_INDEX]][$RESOURCE_RESNAMEORID] = $sResNameOrID
                    $aResource[$aResource[$RESOURCE][$RESOURCE_INDEX]][$RESOURCE_RESTYPE] = $iResType

                    ; Idea inspired by Jos and wraithdu. AutoItWrapper was analysed in creating this code.
                    Switch $iResType
                        Case $RT_BITMAP ; http://www.codeproject.com/Articles/47708/Modify-Update-resources-of-an-Exe-DLL-on-the-fly
                            $iLength -= $RESOURCE_BITMAP_HEADER
                            $tBuffer = DllStructCreate('byte data[' & $iLength & ']')
                            $pBuffer = DllStructGetPtr($tBuffer)
                            _WinAPI_SetFilePointer($hFile, $RESOURCE_BITMAP_HEADER)
                            _WinAPI_ReadFile($hFile, $pBuffer, $iLength, $iBytes, 0)

                        Case $RT_ANICURSOR, $RT_CURSOR
                            ; To be added.

                        Case $RT_ICON ; http://blogs.msdn.com/b/oldnewthing/archive/2012/07/20/10331787.aspx
                            ; To be added.

                        Case $RT_STRING
                            ; To be added.

                        Case Else ; $RT_FONT, $RT_MANIFEST, $RT_RCDATA, $RT_VERSION
                            $tBuffer = DllStructCreate('byte data[' & $iLength & ']')
                            $pBuffer = DllStructGetPtr($tBuffer)
                            _WinAPI_ReadFile($hFile, $pBuffer, $iLength, $iBytes, 0)

                    EndSwitch
                    If $hFile Then
                        _WinAPI_CloseHandle($hFile)
                    EndIf
                    $bReturn = _WinAPI_UpdateResource($aResource[$RESOURCE][$RESOURCE_UPDATE], $iResType, $sResNameOrID, $iResLang, $pBuffer, $iLength) > 0
                EndIf
                $aResource[$aResource[$RESOURCE][$RESOURCE_INDEX]][$RESOURCE_RESISADDED] = $bReturn
            Else
                $bReturn = _WinAPI_UpdateResource($aResource[$RESOURCE][$RESOURCE_UPDATE], $iResType, $sResNameOrID, $iResLang, 0, 0) > 0
            EndIf

            If Not $bReturn And Not $aResource[$RESOURCE][$RESOURCE_ISNOTUPDATE] Then
                $aResource[$RESOURCE][$RESOURCE_ISNOTUPDATE] = True
            Else
                $aResource[$RESOURCE][$RESOURCE_ISNOTUPDATE] = False
            EndIf
        EndIf
    EndIf
    Return $bReturn
EndFunc   ;==>_Resource_Update

Func __Resource_IsAPI(ByRef $aResource)
    Return UBound($aResource, $UBOUND_COLUMNS) = $RESOURCE_MAX And $aResource[$RESOURCE][$RESOURCE_ID] = $RESOURCE_GUID
EndFunc   ;==>__Resource_IsAPI
Edited by guinness
1 person likes this

_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_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: 04/09/2015

Share this post


Link to post
Share on other sites



...and I don't plan on adding anything for a while now as my priorities are tied up on other projects for now mesale0077.


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_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: 04/09/2015

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

Version info update ,how? VALUE "FileVersion", "2.1.1.1" VALUE "Comments", "@mesale0077 ." VALUE "FileDescription", "test name," VALUE "ProductVersion", "3.3.13.14" VALUE "LegalCopyright", "@mesale0077" VALUE "by", "@mesale0077" thank you now

Take a look at trancexx excellent work here

?do=embed' frameborder='0' data-embedContent>

If you would like to learn how to do this yourself mesale0077. :)

Ed: fixed odd link

Edited by Mobius
1 person likes this

Share this post


Link to post
Share on other sites

Please move any questions you have about this particular subject to GHS, as I don't want to clog up this thread with something I have already said is not on my priority list.


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_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: 04/09/2015

Share this post


Link to post
Share on other sites

#6 ·  Posted (edited)

Thank you very much for this UDF it's very useful and it's really difficult for me to work with winapi.

It's weird that Resources Ex dont have update functions, I wish there was support for icons and strings.

Edited by somedude12

Share this post


Link to post
Share on other sites

They're two separate entities.


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_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: 04/09/2015

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  
Followers 0