![]() |
24x24 Icon extrahieren ?
Ich möchte gerne ein 24x24 Icon aus der Shell32.dll extrahiern, doch irgendwie bekomme ich das nicht hin ...
Meine bisherigen Versuche laufen darauf hinas, dass ich das 16x16 Icon kriege, und das 32x32, aber n9icht das 24x24, welches ich brauche und weilches auch existiert ...
Delphi-Quellcode:
Dann sind in der Paintbox halt das 16x16 rechts und das 32x32 links, aber 24x24 :?
procedure TForm1.Button1Click(Sender: TObject);
var Icon1, Icon2: TIcon; klein, gross: HIcon; begin try Icon1 := TIcon.Create; Icon2 := TIcon.Create; klein := 0; gross := 0; Label1.Caption := inttostr (ExtractIconEx (PChar('C:\WINDOWS\system32\shell32.dll'), 23, klein, gross, 1)); Icon1.Handle := klein; Icon2.Handle := gross; PaintBox321.Canvas.Rectangle(-1, -1, Succ(PaintBox321.Width), Succ(PaintBox321.Height)); PaintBox321.Canvas.Draw (0, 0, Icon1); PaintBox321.Canvas.Draw (40, 0, Icon2); Icon1.Free; Icon2.Free; except ShowMessage(SysErrorMessage(GetLastError)); end; end; Kennt sich damit wer aus ? |
Re: 24x24 Icon extrahieren ?
Hallo,
Kenne mich nicht gut damit aus aber ich denke du kannst an das Icon per LoadLibrary(), FindResource(),... herankommen und extrahieren. |
Re: 24x24 Icon extrahieren ?
Moin Julius,
ich vermute mal, dass Du Dir ExtractIconEx selber importieren musst, um alle Icons mit dem genannten Index zu erhalten. Die Art und Weise, wie Borland die Funktion importiert hat gibt Dir jeweils nur nur ein Small- und ein Largeicon zurück (beide Parameter sind ja als Var deklariert.). Deklariere die bei Deinem Import mal als const. Dann musst Du auch noch daran denken, dass Du nicht mehr einfach eine Variable übergeben kannst, sondern auch noch den Speicher reservieren musst. Der Rückgabewert von ExtractIconEx gibt Dir an wieviele Icons extrahiert wurden (sollte bei Deinem bisherigen Aufruf dann ja immer 1 sein) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 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