Heaventools

   English English  Deutsch Deutsch

startseite   produkte   resource tuner console   beispiel-skripts

Icons hinzufügen oder ersetzen

In diesem Codebeispiel zeigen wir, wie Sie mühelos Icons in EXE- und DLL-Dateien mit dem Resource Tuner Console ändern können.

Das Skript fügt Icons in einer Test-EXE-Datei hinzu oder ersetzt sie und verwendet dazu Icons aus .ico-Dateien, die sich im Ordner "Src" befinden. Sobald die Modifikationen abgeschlossen sind, wird die aktualisierte Datei im Verzeichnis "Release" gespeichert.

Der Code demonstriert die folgenden Icon-Modifikationen in ausführbaren Dateien:

  • Ersetzen des Haupticons durch neue Icons aus einer .ICO-Datei, einschließlich des großen 256x256 PNG-komprimierten Icons.
  • Sortieren der hinzugefügten Icons in der richtigen Reihenfolge.
  • Hinzufügen eines weiteren Icons zur neu erstellten Icon-Gruppe.
  • Ausgabe der Änderungen im Resource Tree in die Datei rtc.log.
  • Wiederherstellen der ursprünglichen Zeitstempel der Datei nach dem Speichern.

Das Skript fügt in DemoApp1.exe Icons hinzu oder ersetzt sie durch Icons aus .ico-Dateien, die sich im Ordner "Src" befinden.

Nach der Ausführung werden die resultierenden Dateien mit aktualisierten Icons im Verzeichnis "Release" gespeichert. Sie können die vorgenommenen Änderungen im Resource Tree überprüfen, indem Sie die Datei "rtc.log" prüfen.

Das Skript enthält auch eine Methode, um die ursprünglichen Dateizeitstempel zu erhalten, die zu Demonstrationszwecken dient. Dadurch können Sie die ursprünglichen Zeitstempel (Erstellungszeit, letzter Zugriff und letzte Änderung) der Datei nach der Durchführung von Dateioperationen wiederherstellen.

Für umfassendere Details und Anleitungen verweisen Sie auf den Schritt-für-Schritt-Leitfaden zur Verwendung von Skripten, der weitere Einblicke in die Verwendung von Resource Tuner Console bietet.

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

Edit Icons

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

  '-------- Getting the original file timestamps (for demo purpose) --------
  'To restore the original timestamps on the file after saving,
  'we need to get the timestamps before performing any file operations.

  SRCFILE = ".\src\DemoApp1.exe"
  PEFileProxy.PostDebugString ""
  PEFileProxy.PostDebugString "Getting CreationTime, LastAccessTime and 
LastWriteTime for file '" & SRCFILE & "'..."

  set fso = CreateObject("Scripting.FileSystemObject")
  set f = fso.GetFile(SRCFILE)
  DCR = f.DateCreated
  DLM = f.DateLastModified
  DLA = f.DateLastAccessed
  PEFileProxy.PostDebugString "Created      : " & DCR
  PEFileProxy.PostDebugString "Last Modified: " & DLM
  PEFileProxy.PostDebugString "Last Accessed: " & DLA
  PEFileProxy.PostDebugString ""
  '-------------------------------------------------------------------------

  'Open file
  PEFileProxy.PostDebugString "Opening the file..."
  PEFileProxy.OpenFile SRCFILE
  if (PEFileProxy.Terminated) then
    'Issue a warning in case of error
    PEFileProxy.PostDebugString "Fatal 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

      PEFileProxy.PostDebugString "Change/add the main application icon..."
      ResourcesProxy.ChangeIcon "", LangID, CREATE_IF_NOT_EXIST, 
REPLACE_IF_ITEM_EXISTS_ELSE_ADD, ".\src\vista_iconset.ico"

      PEFileProxy.PostDebugString "Add one more Icon Group with one more icon..."
      ResourcesProxy.ChangeIcon "New Icon Group", LangID, CREATE_IF_NOT_EXIST, 
REPLACE_IF_ITEM_EXISTS_ELSE_ADD, ".\src\icon_3_32x32_8bit.ico"

      'Build and output the Resource Tree to log to show the changes made
      PEFileProxy.PostDebugString ""
      PEFileProxy.PostDebugString "Resource Tree built by RTC:"
      ResourcesProxy.ResourceTreeToLog
      PEFileProxy.PostDebugString ""

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

  '--------------------------------------------------------------------------
  'Restoring the original timestamps (CreationTime, LastAccess and LastWrite)
      PEFileProxy.PostDebugString ""
      PEFileProxy.PostDebugString "Restore CreationTime, LastAccessTime and 
LastWriteTime for file '" & DESTFILE & "'..."
      if not ScriptUnit.SetFileTime(DESTFILE, DCR, DLA, DLM) then
       'Issue a warning in case of error
       PEFileProxy.PostDebugString "Restoring CreationTime, LastAccessTime and 
LastWriteTime for file '" & DESTFILE & "'  failed."
      else
       PEFileProxy.PostDebugString "CreationTime, LastAccessTime and 
LastWriteTime for file '" & DESTFILE & "' restored OK."
      end if
      PEFileProxy.PostDebugString ""

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

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

Nach der Ausführung des Skripts erstellt RTC eine Protokolldatei, die die im Prozess vorgenommenen Änderungen im Resource Tree anzeigt. Sie können diese Änderungen bequem in der Protokolldatei überprüfen, um die durchgeführten Modifikationen zu verstehen:

Resource Tree built by RTC:
----------------------------------------
 [Cursor (1)]
     1: 32x32 1b, Neutral (0)
     2: 32x32 1b, Neutral (0)
     3: 32x32 1b, Neutral (0)
     4: 32x32 1b, Neutral (0)
     5: 32x32 1b, Neutral (0)
     6: 32x32 1b, Neutral (0)
     7: 32x32 1b, Neutral (0)
 [Bitmap (2)]
     BBABORT: Neutral (0)
     BBALL: Neutral (0)
     BBCANCEL: Neutral (0)
     BBCLOSE: Neutral (0)
     BBHELP: Neutral (0)
     BBIGNORE: Neutral (0)
     BBNO: Neutral (0)
     BBOK: Neutral (0)
     BBRETRY: Neutral (0)
     BBYES: Neutral (0)
     CDROM: Neutral (0)
     CLOSEDFOLDER: Neutral (0)
     CURRENTFOLDER: Neutral (0)
     EXECUTABLE: Neutral (0)
     FLOPPY: Neutral (0)
     HARD: Neutral (0)
     KNOWNFILE: Neutral (0)
     NETWORK: Neutral (0)
     OPENFOLDER: Neutral (0)
     RAM: Neutral (0)
     UNKNOWNFILE: Neutral (0)
     XCLR_BMP: German — Switzerland (2055)
 [Icon (3)]
     * 1: 32x32 4b, Finnish (1035)
     2: 32x32 8b, Finnish (1035)
     + 3: 16x16 4b, Neutral (0)
     + 4: 32x32 8b, Neutral (0)
     + 5: 32x32 4b, Neutral (0)
 [String (6)]
     4080: Neutral (0)
     4081: Neutral (0)
     4082: Neutral (0)
     4083: Neutral (0)
     4084: Neutral (0)
     4085: Neutral (0)
     4086: Neutral (0)
     4087: Neutral (0)
     4088: Neutral (0)
     4089: Neutral (0)
     4090: Neutral (0)
     4091: Neutral (0)
     4092: Neutral (0)
     4093: Neutral (0)
     4094: Neutral (0)
     4095: Neutral (0)
     4096: Neutral (0)
 [RC Data (10)]
     DVCLAL: Neutral (0)
     PACKAGEINFO: Neutral (0)
     TFORM1: Neutral (0)
 [Cursor Group (12)]
     32761: Neutral (0)
     32762: Neutral (0)
     32763: Neutral (0)
     32764: Neutral (0)
     32765: Neutral (0)
     32766: Neutral (0)
     32767: Neutral (0)
 [Icon Group (14)]
     * MAINICON: Korean (1042)
     XCLR_ICON: German — Switzerland (2055)
     + 1: Neutral (0)
 [Version (16)]
     1: English (US) (1033)
---------------------------------------------------------------------
Legend: [Name (Ord)] — Type; "+" — New; "-" — Deleted; "*" — Modified


Die Sprach-ID wird durch einen Wort-Ganzzahlwert dargestellt, der aus
einer Primärsprache und der entsprechenden Unter-Sprache besteht, die
vom Windows-Betriebssystem definiert sind. Wenn ein Ressourcenelement
als "sprachneutral" bezeichnet wird, wird der Sprach-ID-Wert auf Null
gesetzt.

Diese Protokolldatei dient als wertvolle Referenz und bietet Einblicke in den Icon-Ersatz und die Änderungen am Resource Tree, die von RTC vorgenommen wurden. Mit dieser Ausgabe können Sie sicherstellen, dass die gewünschten Änderungen erfolgreich angewendet wurden und Ihre Icon-Verwaltungsaufgaben mühelos optimieren.

Um die Änderungen an den Test-EXE-Dateien zu sehen, empfehlen wir die Verwendung von Resource Tuner GUI.

Nach der Installation von Resource Tuner Console können Sie auf diese Beispiele im Ordner Demo Scripts zugreifen, der sich im Installationsverzeichnis befindet. Der Ordner Demo Scripts enthält 12 Unterverzeichnisse, von denen jedes Beispiele und ausführbare Dateien enthält.

Alle Beispiel-Skripte sind vorkonfiguriert und einsatzbereit. Um ein Beispiel-Skript auszuführen, wählen Sie einfach eine der .BAT-Dateien in den "Demo Scripts"-Ordnern aus. Das Skript wird Änderungen an einer Test-EXE-Datei vornehmen. Die modifizierte Datei wird in einem Verzeichnis namens "Release" generiert, das sich im selben Verzeichnis wie das Skript befindet.

 

Haben Sie eine Frage?

Schauen Sie sich unbedingt unseren FAQ-Bereich an, um Antworten auf die am häufigsten gestellten Fragen zu erhalten.

Wenn Sie Fragen zu Resource Tuner Console haben, kontaktieren Sie uns bitte. Wir würden uns über Ihr Feedback freuen! Wir begrüßen Ihre Feature-Anfragen, Fehlerberichte, Vorschläge oder Kommentare zu unserem Produkt. Ihre Meinung ist für uns von großer Bedeutung. Dies hilft uns, unsere Zeit auf Funktionen zu konzentrieren, die Benutzer wirklich interessieren.