' This sample VBScript code provides a real-world example that demonstrates ' many of the features available in Resource Tuner Console. ' ' This code shows how to: ' - replace icons in the executable with icons from an ico file which ' contains more than one image. ' - add a 256x256 PNG-compressed icon (a Vista icon) ' - sort out the added icons in the right order ' - add or replace an XML manifest ' - output the changes in the Resource Tree to a log file. ' ' To give you an idea of how this all works, we made this sample script and ' test application. When you installed Resorce Tuner Console on your computer, ' the setup program created the "..\Demo" folder under the RTC folder, with ' the test application "demoapp1.exe" in the "..\Demo\Src" folder. ' ' The script will add or replace icons in demoapp1.exe with icons from the .ico ' and .png files from the "..\Demo\Src" folder. ' ' The resulting file will be created in the directory named "..\Demo\Release" ' Check the log file "rtc.log" to see the Resource Tree changed. ' ' Demonstrates the following: ' ' - PEFileProxy.OpenFileEx ' - PEFileProxy.Terminated ' - PEFileProxy.HasResources ' - PEFileProxy.CreateBackUp ' - PEFileProxy.SaveAsNewImage ' - PEFileProxy.PostDebugString ' - PEFileProxy.UpdateCheckSum ' - ResourcesProxy.ChangeIcon ' - ResourcesProxy.ChangeVistaIcon ' - ResourcesProxy.ChangeManifest ' - ResourcesProxy.SetLanguage ' - ResourcesProxy.SortGroupIcon ' - ResourcesProxy.ResourceTreeToLog ' '------------------------------------------------------------------------------ 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 LangID = 0 ' Default CP = ScriptUnit.CodePageFromLangID(LangID) PEFileProxy.PostDebugString "Opening a file and checking resources..." 'Open file 'Once the file is opened successfully, check if the file contains resources 'If not, create resources If (PEFileProxy.OpenFileEx ("..\demo\src\demoapp1.exe", True)) Then ResourcesProxy.SetLanguage LangID, DELETE_IF_EXISTS PEFileProxy.PostDebugString "Changing/adding the full XP icon set (9 icons)..." ResourcesProxy.ChangeIcon "", LangID, CREATE_IF_NOT_EXIST, REPLACE_IF_ITEM_EXISTS, "..\demo\src\xp_iconset.ico" PEFileProxy.PostDebugString "Adding the 256 pix PNG Vista icon ..." ResourcesProxy.ChangeVistaIcon "", LangID, 32, CREATE_IF_NOT_EXIST, REPLACE_IF_ITEM_EXISTS, "..\demo\src\vista_256x256_32bit.png" PEFileProxy.PostDebugString "Sorting out the icons..." ResourcesProxy.SortGroupIcon "", True 'Edit XML Manifest PEFileProxy.PostDebugString "Adding/editing XML Manifest..." ResourcesProxy.ChangeManifest EXE_MANIFEST, LangID, CREATE_IF_NOT_EXIST, "..\demo\src\exe_manifest.xml" PEFileProxy.PostDebugString "" PEFileProxy.PostDebugString "Resource Tree built by RTC:" ResourcesProxy.ResourceTreeToLog PEFileProxy.PostDebugString "" PEFileProxy.PostDebugString "Saving file as a new file..." PEFileProxy.SaveAsNewImage "..\demo\release\demoapp1.exe" PEFileProxy.PostDebugString "Closing this file..." PEFileProxy.CloseFile Else PEFileProxy.PostDebugString "Opening a file produced a fatal error." End If End Sub '------------------------------------------------------------------------------ |