Jump to content

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


guinness
 Share

Recommended Posts

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

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

  • 4 weeks later...

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

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

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

wtfpl-badge-1.png

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

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

  • 4 months later...

They're two separate entities.

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

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