AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Neuen Beitrag zur Code-Library hinzufügen Delphi Laden und Speichern von Icons (Icon Parser, für Icon Dateien oder Resourcen)
Thema durchsuchen
Ansicht
Themen-Optionen

Laden und Speichern von Icons (Icon Parser, für Icon Dateien oder Resourcen)

Ein Thema von Zacherl · begonnen am 28. Sep 2012 · letzter Beitrag vom 22. Nov 2016
Antwort Antwort
Benutzerbild von MuTzE.Y85
MuTzE.Y85

Registriert seit: 11. Apr 2006
152 Beiträge
 
#1

AW: Laden und Speichern von Icons (Icon Parser, für Icon Dateien oder Resourcen)

  Alt 1. Okt 2012, 01:17
Ja das stimmt, 1:0 für dich
LAN-PC: C2Q Q9550 @ 4004 MHz @ 1.232 V @ Mugen 2 | DFI LANParty JR P45-T2RS | G.Skill 4GB DDR2-1000 CL5 | ZOTAC GTX 280 @ GTX 285 @ 1.06 V | WD Caviar Blue 320GB / WD Caviar Black 640GB | BeQuiet DPP P7 450W | Antec Mini P180
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: Laden und Speichern von Icons (Icon Parser, für Icon Dateien oder Resourcen)

  Alt 5. Okt 2012, 01:48
Hatte ganz vergessen die SaveToResource Funktion komplett zu implementieren Leider gibt es momentan ab und zu noch Probleme ein Icon hinzuzufügen, wenn die EXE vorher kein Icon besessen hat. Fals jemand einen Tipp für mich hat, bitte hier posten:
http://www.delphipraxis.net/170834-h...festlegen.html

SaveToResource Funktion vervollständigt
Das Speichern funktioniert nun in den meisten Fällen. Achtung: Hat die neue Icon Resource mehr Einzelbilder, als die ersetzte Resource, können eventuell weitere Einzelbilder überschrieben werden.
FindIconImageIndex hinzugefügt
FindIconImageIndex sucht anhand der übergebenen Maßen (und optional Farbtiefe) den Index des passendsten Einzelbildes heraus
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)

Geändert von Zacherl ( 5. Okt 2012 um 02:00 Uhr)
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
517 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Laden und Speichern von Icons (Icon Parser, für Icon Dateien oder Resourcen)

  Alt 1. Jan 2013, 17:50
Ich habe mal versucht mit Hilfe der Unit das MAINICON einer bestehenden Delphi Anwendung zu ändern. Dazu habe ich den Beispielcode von Bummi in leicht abgeänderter Form verwendet. Allerdings gelingt es mir nicht das MAINICON zu ändern. Weder mit einer ICO-Datei noch mit einem Icon aus einer anderen Anwendung. Wahrscheinlich sehe ich meinen Fehler nur nicht. Könnte mir jemand auf die Sprünge helfen?
Delphi-Quellcode:
uses
  dxIconUtils;

procedure TForm2.Button1Click(Sender: TObject);
var
 ir:TdxIconResource;
 hModule: THandle;
begin
   ir:=TdxIconResource.Create;
   //ir.CreateIconHandles := true;

   //ir.LoadFromFile('Testicon.ico');

  hModule := LoadLibraryEx('TestPE.exe', 0, LOAD_LIBRARY_AS_DATAFILE);
  if (hModule <> 0) and (hModule <> INVALID_HANDLE_VALUE) then
  try
    ir.LoadFromResource(hModule, 'MAINICON');
  finally
    FreeLibrary(hModule);
  end;

  ir.SaveToResource('AppWithNewIcon.exe', 'MAINICON');

  ShowMessage(IntToStr(ir.ImageCount)); // Anzahl enthaltener Icons wird angezeigt bspw. 9, 10 etc.

  ir.Free;
end;
BTW: Wie kann man bei der Verwendung von IconDLL's etc. die Nummer des zu verwendenen Icons angeben, da hier der Pfad zur Datei ja immer der selbe ist?
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

AW: Laden und Speichern von Icons (Icon Parser, für Icon Dateien oder Resourcen)

  Alt 1. Jan 2013, 17:56
Könnte es eventuell sein, dass der Windows Icon Cache noch das alte Icon beinhaltet und deshalb keine Änderung sichtbar ist? Der Code sieht eigentlich gut aus. Was sagt denn GetLastError() nach dem Aufruf von SaveToResource()?

Für Icon DLLs oder EXEn mit ordinalen Resourcenbezeichnern, kannst du die entsprechende Nummer einfach in PChar casten: LoadFromResource(hModule, PChar(1337));
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
517 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Laden und Speichern von Icons (Icon Parser, für Icon Dateien oder Resourcen)

  Alt 1. Jan 2013, 18:11
Also der Aufruf von GetLastError gibt Fehler 5 (Zugriff verweigert) aus. Die Datei ist aber definitiv nicht im Zugriff. Virenscanner habe ich grade testweise deaktiviert. Das Ergebnis ist dasselbe. Es sei denn Windows hat sich verschluckt. Das werde ich gleich nochmal ausprobieren.
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
517 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Laden und Speichern von Icons (Icon Parser, für Icon Dateien oder Resourcen)

  Alt 1. Jan 2013, 18:24
So, ein Neustart von Windows hat nichts gebracht. Den IconCache schliesse ich mal aus, da ich die zu modifizierende Datei nach der Änderung in einem Resourcenviewer öffne um die Änderung zu betrachten.

Ich bin ehrlich gesagt ratlos.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

AW: Laden und Speichern von Icons (Icon Parser, für Icon Dateien oder Resourcen)

  Alt 1. Jan 2013, 18:27
Also der Aufruf von GetLastError gibt Fehler 5 (Zugriff verweigert) aus. Die Datei ist aber definitiv nicht im Zugriff. Virenscanner habe ich grade testweise deaktiviert. Das Ergebnis ist dasselbe. Es sei denn Windows hat sich verschluckt. Das werde ich gleich nochmal ausprobieren.
Schau mal im Debugger per Single Step, an welcher Stelle innerhalb von SaveToResource() der Fehler auftritt. Und nimm vielleicht testweise mal absolute Pfade, statt der Relativen.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
517 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Laden und Speichern von Icons (Icon Parser, für Icon Dateien oder Resourcen)

  Alt 1. Jan 2013, 18:50
Also der Fehler tritt auf beim Aufruf von DeleteExistingIconResource innerhalb der SaveToResource-Funktion. Hilft dir das weiter? Die Pfade sind absolut. Ich habe die nur fürs Forum auf das wesentliche gekürzt.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz