home products
resource tuner console
sample scripts library
Replacing Data Types That Stored As Custom Resources
This code shows how to modify common data types that stored as custom resources: major graphic files (.GIF, .PNG, .JPG), sound (.WAV, .MIDI) and video (.AVI) files, or binary files (.CAB, TYPELIB, etc).
The ChangeCustomResource procedure lets you replace any custom resource. The script replaces GIF in demoapp1.exe with the animated gif file from the "Src" folder.
The script also replaces the standard cursor with another "xhair2.cur" file (ChangeCursor procedure), and sets the new image base (RebaseImage procedure). The resulted file will be saved to the Destination folder.
Note: when copying out the script code, please make sure there's no line breaks. This is a requirement of VBScript: the entire command must be on one line.
'------------------------------------------------------------------------------ ' ' This code shows how to modify common data types that stored as custom ' resources: major graphic files (.GIF, .PNG, .JPG), sound (.WAV, .MIDI) ' and video (.AVI) files, or binary files (.CAB, TYPELIB, etc). ' ' The resulting files will be created in the directory named "\Demo\Release" ' Check the log file to see the Resource Tree built. ' '------------------------------------------------------------------------------ Sub Main PEFileProxy.PostDebugString "Updating the checksum in the PE file header is enabled." PEFileProxy.UpdateCheckSum = True PEFileProxy.PostDebugString "The creation of a backup copy is disabled." PEFileProxy.CreateBackUp = False PEFileProxy.PostDebugString "Open file..." PEFileProxy.OpenFile ".\src\DemoApp1.exe" if (PEFileProxy.Terminated) then PEFileProxy.PostDebugString "Opening the file produced a fatal error." else PEFileProxy.PostDebugString "File successfully opened." if (not PEFileProxy.HasResources) then PEFileProxy.PostDebugString "The file contains no resources." else PEFileProxy.PostDebugString "The file contains resources." LangID = 0 ' Default ResourcesProxy.SetLanguage LangID, DELETE_IF_EXISTS ' Replace Cursor PEFileProxy.PostDebugString "Changing/adding Cursor..." ResourcesProxy.ChangeCursor "32761", LangID, CREATE_IF_NOT_EXIST, REPLACE_IF_ITEM_EXISTS, ".\src\xhair2.cur" PEFileProxy.PostDebugString "Sorting out the cursors..." ResourcesProxy.SortGroupCursor "", True ' Replace GIF file PEFileProxy.PostDebugString "Changing/adding Custom Resource..." ResourcesProxy.ChangeCustomResource "DEMO_GIF", "GIF", LangID, CREATE_IF_NOT_EXIST, ".\src\replaced.gif" ' Output the resources as Resource Tree ' Check the log file to see the Resource Tree built. PEFileProxy.PostDebugString "" PEFileProxy.PostDebugString "Resource Tree built by RTC:" ResourcesProxy.ResourceTreeToLog PEFileProxy.PostDebugString "" ' Set the ImageBase value in the PE Optional Header to the desired address. PEFileProxy.PostDebugString "Set new ImageBase..." if (not PEFileProxy.RebaseImage(&H00500000)) then PEFileProxy.PostDebugString "Can't rebase file" end if PEFileProxy.PostDebugString "Saving file as a new file..." PEFileProxy.SaveAsNewImage ".\release\DemoApp1.exe" end if PEFileProxy.PostDebugString "Closing this file..." PEFileProxy.CloseFile end if end Sub '------------------------------------------------------------------------------ |
To see the changes made to the test EXEs, we recommend using Resource Tuner GUI, a visual resource editor.
Once installed Resorce Tuner Console, you will find the Demo folder in the directory where RTC has been installed. Within this Demo folder, there are 11 subdirectories that contain sample scripts and sample executable files.
All sample scripts are ready to run. Select one of the .BAT files located in the Demo folders to execute the sample script. The script will make changes in the test EXE file. The resulting file will be created in the directory named "Release" under the directory containing the script.
The Complete Illustrated Step by Step Guide To Using Scripts
Download Resource Tuner Console and learn how it can make you more productive.