Heaventools

   English English  Deutsch Deutsch

startseite   produkte   resource tuner console   beispiel-skripts

Das Ersetzen von Datentypen, die als benutzerdefinierte Ressourcen gespeichert sind

Dieser Code zeigt, wie gängige Datentypen, die als benutzerdefinierte Ressourcen gespeichert sind, geändert werden können, einschließlich wichtiger Grafikdateien (.GIF, .PNG, .JPG), Sounddateien (.WAV, .MIDI) und Videodateien (.AVI) sowie Binärdateien (.CAB, TYPELIB usw.).

The ChangeCustomResource procedure allows you to replace any custom resource. In this script, it replaces a GIF resource in DemoApp1.exe with an animated GIF file from the "Src" folder.

Additionally, the script demonstrates how to replace the standard cursor with another xhair2.cur file using the ChangeCursor procedure.

To avoid conflicts when loading multiple DLLs with the same base address, the script sets the ImageBase value in the PE Optional Header manually with the RebaseImage procedure. This operation is optional and can be commented out if not needed.

The resulting modified files will be saved to the directory named "Release".

Hinweis: Stellen Sie sicher, dass im Skriptcode keine Zeilenumbrüche vorhanden sind, da VBScript erfordert, dass der gesamte Befehl in einer Zeile steht.

Edit Custom GIF

'------------------------------------------------------------------------------
'
' Dieses Skript zeigt, wie gängige Datentypen, die als benutzerdefinierte
' Ressourcen gespeichert sind, geändert werden können: wichtige Grafikdateien
' (.GIF, .PNG, .JPG), Sounddateien (.WAV, .MIDI), Videodateien (.AVI) oder
' Binärdateien (.CAB, TYPELIB usw.).
'
' Die resultierenden Dateien werden im Verzeichnis mit dem Namen "Release" erstellt.
' Überprüfen Sie die Logdatei, um den erstellten Ressourcenbaum zu sehen.
'
'------------------------------------------------------------------------------

Sub Main
      
  PEFileProxy.PostDebugString "PE file header checksum updating is enabled." 
  PEFileProxy.UpdateCheckSum = True

  PEFileProxy.PostDebugString "The creation of a backup copy is disabled." 
  PEFileProxy.CreateBackUp = False

  PEFileProxy.PostDebugString "Open the file for editing..."
  PEFileProxy.OpenFile ".\src\DemoApp1.exe"
  if (PEFileProxy.Terminated) then
    'Issue a warning in case of error
    PEFileProxy.PostDebugString "Error when opening this file."
  else
    PEFileProxy.PostDebugString "File opened OK."
    if (not PEFileProxy.HasResources) then
      PEFileProxy.PostDebugString "The file contains no resources."
    else
      PEFileProxy.PostDebugString "The file contains resources."      

      'This specifies the default language      
      LangID = 0 ' Default 

      ' Replace the "GIF" file in the "DEMO_GIF" custom resource
      ' (resource name = "DEMO_GIF", resource id = "GIF")
      PEFileProxy.PostDebugString "Change/add Custom Resource..."
      ResourcesProxy.ChangeCustomResource "DEMO_GIF", "GIF", LangID, 
CREATE_IF_NOT_EXIST, ".\src\replaced_ani_gif.gif"

      'Replace the cursor (for demo purposes)
      PEFileProxy.PostDebugString "Change/add Cursor..."
      ResourcesProxy.ChangeCursor "32761", LangID, CREATE_IF_NOT_EXIST, 
REPLACE_IF_ITEM_EXISTS_ELSE_ADD, ".\src\xhair2.cur"

      'Build and output the Resource Tree to a log file.
      'Check the log file to see the Resource Tree built. 
      PEFileProxy.PostDebugString ""
      PEFileProxy.PostDebugString "Resource Tree built by RTC:"
      ResourcesProxy.ResourceTreeToLog
      PEFileProxy.PostDebugString ""

'--- Legt den ImageBase-Wert im PE Optional Header auf die gewünschte Adresse fest ---

' Hinweis: Dies ist ein optionaler Vorgang zu Demonstrationszwecken. Dadurch können
' Ihre Dateien manuell eine eigene Image-Base haben, um Konflikte zu vermeiden, wenn
' Ihre Anwendung eine Reihe von DLLs lädt, die dieselbe Basisadresse haben.
' Dieser Vorgang ist optional und kann auskommentiert werden, wenn er nicht benötigt
' wird.

      PEFileProxy.PostDebugString "Set new ImageBase..."
      if (not PEFileProxy.RebaseImage(&H00500000)) then
        'Issue a warning in case of error
        PEFileProxy.PostDebugString "Can't rebase file"
      end if

'------------------------------------------------------------------------------------

      'Save the file      
      PEFileProxy.PostDebugString "Saving the file..."
      PEFileProxy.SaveAsNewImage ".\release\DemoApp1.exe"

    end if
    PEFileProxy.PostDebugString "Closing this file..."
    PEFileProxy.CloseFile
  end if
end Sub

Um die Änderungen, die man in Test-EXE-Dateien gemacht hat, zu sehen, empfehlen wir die Benutzung von Resource Tuner GUI, einem visuellen Ressourcen-Editor.


BEISPIEL-SKRIPTBIBLIOTHEK

Nach der Installation von Resorce Tuner Console finden Sie den Demo Scripts-Ordner im Verzeichnis, in dem RTC installiert wurde. In diesem Demo-Ordner befinden sich 12 Unterverzeichnisse mit Skriptbeispielen und Beispieldateien.

Alle Beispielskripte sind einsatzbereit. Wählen Sie eine der .BAT-Dateien in den Demo Scripts-Ordnern aus, um das Beispielskript auszuführen. Das Skript wird Änderungen in der Test-EXE-Datei vornehmen. Die resultierende Datei wird im Verzeichnis Release unter dem Verzeichnis erstellt, das das Skript enthält.

 

Schritt-für-Schritt Anleitung wie man Skripte benutzt

 Laden Sie Resource Tuner Console herunter und erfahren Sie, wie es Ihre Produktivität steigern kann.