AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

EXE Icon austauschen

Ein Thema von API · begonnen am 21. Feb 2008 · letzter Beitrag vom 27. Feb 2008
Antwort Antwort
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#1

EXE Icon austauschen

  Alt 21. Feb 2008, 09:29
Hallo DP

Ich probiere ein Icon einer fremden EXE auszutauschen und bin auf die
UpdateExeIcon gestossen.

2 Fragen:

- Was genau macht MAKELANGID und welche parameter muss man einsetzen?
Sind die Sprachen abhängig vom Programm oder OS?

- Wie findet man die Bezeichnung für "iconGroup" für das Haupticon der Exe Datei?

Delphi-Quellcode:
Uses madres {resource functions for both NT and 9x families - sourcecode @ madshi.net}

{$R *.res}

function MAKELANGID(sPrimaryLanguage: Word;
  sSubLanguage: Word): Word;
begin
  result := (sSubLanguage shl 10) or sPrimaryLanguage;
end;

function UpdateExeIcon(exeFile, iconGroup, icoFile: string; language: word): boolean;
var resUpdateHandle: dword;
  c: TPIconGroup;
begin
  resUpdateHandle := BeginUpdateResourceW(PWideChar(wideString(exeFile)), false);
  if resUpdateHandle <> 0 then
  begin
    if GetIconGroupResourceW(resUpdateHandle, PWideChar(wideString(iconGroup)), language, c) then
      result := LoadIconGroupResourceW(resUpdateHandle, PWideChar(wideString(iconGroup)), language, PWideChar(wideString(icoFile)))
    else
      if StrToIntDef(iconGroup, -1) > -1 then
        result := LoadIconGroupResourceW(resUpdateHandle, PWideChar(pointer(strtoint(iconGroup))), language, PWideChar(wideString(icoFile)))
      else
        result := false;
    result := EndUpdateResourceW(resUpdateHandle, false) and result;
  end else
    result := false;
end;

begin
  UpdateExeIcon('Project1.exe', 'MainIcon', 'red.ico', makelangid(LANG_German, SUBLANG_GERMAN));
end.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: EXE Icon austauschen

  Alt 23. Feb 2008, 09:07
habe das gleiche Problem. Möchte eine Icon Datei austauschen aber obiger Code funtioniert nicht richtig.
Thomas
  Mit Zitat antworten Zitat
TonyMontana
(Gast)

n/a Beiträge
 
#3

Re: EXE Icon austauschen

  Alt 23. Feb 2008, 11:13
Woher stammt denn der Code überhaupt?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: EXE Icon austauschen

  Alt 23. Feb 2008, 11:19
Zitat von toms:
aber obiger Code funtioniert nicht richtig.
Das ist eine unzureichende Fehlerbeschreibung. Was sollen wir damit jetzt anfangen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#5

Re: EXE Icon austauschen

  Alt 23. Feb 2008, 11:20
Code stammt von: http://forum.madshi.net/viewtopic.php?p=14897
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.334 Beiträge
 
Delphi XE5 Professional
 
#6

Re: EXE Icon austauschen

  Alt 23. Feb 2008, 16:18
http://www.ciuly.com/delphi/misc/mad...con/index.html
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#7

Re: EXE Icon austauschen

  Alt 26. Feb 2008, 18:08
Zitat von Garfield:
http://www.ciuly.com/delphi/misc/madshi/changeIcon/index.html
Der Code scheint auch nicht zu funktionieren. (d.h das Exe Icon wird nicht ausgetauscht)
Getestet unter XP.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.334 Beiträge
 
Delphi XE5 Professional
 
#8

Re: EXE Icon austauschen

  Alt 27. Feb 2008, 16:50
Zitat von toms:
Der Code scheint auch nicht zu funktionieren. (d.h das Exe Icon wird nicht ausgetauscht)
Getestet unter XP.
Ich hatte mir den Quelltext bisher nicht angesehen. Jetzt habe ich festgestellt, dass er funktioniert. Allerdings wird das Icon nur extrahiert.

Auch die oben gepostete Function UpdateExeIcon funktioniert. Ein Fehler liegt im Aufruf:
Zitat von API:
UpdateExeIcon('Project1.exe', 'MainIcon', 'red.ico', makelangid(LANG_German, SUBLANG_GERMAN));
'MainIcon' muss 'MAINICON' geschrieben werden. Ein weiterer Fehler könnte in der Madres.pas liegen. Denn ob es funktioniert oder nicht ist von der Sprache abhängig. LANG_GERMAN und SUBLANG_GERMAN bzw SUBLANG_DEFAULT funktionieren nicht. Aber das von Ciuly verwendete LANG_ROMANIAN, SUBLANG_DEFAULT.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#9

Re: EXE Icon austauschen

  Alt 27. Feb 2008, 17:44
mit 'MAINICON' funktioniert es. Doch stellt sich immer noch die Frage, welche Parameter bei makelangid() eingesetzt werden sollten.
Thomas
  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 00:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz