Einzelnen Beitrag anzeigen

Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

Icon 235 zeigt Windows an, aber Delphi extrahiert es nicht

  Alt 18. Aug 2006, 10:10
Hi,

ich extrahiere die Windowsicons aus der shell32.dll. Das Icon 235 müsste eigentlich das Icon für 'Eigene Dateien' sein, wird aber in meinem Programm durch eine Art Icon ersetzt, welches darstellen soll, dass dieses Icon kaputt gegangen ist. Das kann aber nicht sein, da mir Windows und ein Programm zum Icon extrahieren das Icon korrekt unter der Id 235 anzeigt (siehe Avatar). Hier erstmal der Code:
Delphi-Quellcode:
function TfrmMain.IconLesen(icon_nr_s : cardinal) : TIcon;
var s : PAnsiChar;
begin
  Result := TIcon.Create;
  s := 'C:\Windows\system32\shell32.dll';
  Result.Handle := ExtractIcon(Application.Handle, s, icon_nr_s);
end;

// ...

IconLesen(235);
Außerdem würde ich gerne noch wissen, wie ich den Code mit der GetWinDir-Funktion erweitern könnte, denn s erwartet PAnsiChar und GetWinDir liefert String zurück:
Delphi-Quellcode:
function TfrmMain.GetWinDir: String;
var
  Buffer: PAnsiChar;
  Len:Cardinal;
begin
  Buffer := nil;
  Len := GetWindowsDirectory(Buffer,0);

  Buffer := allocMem(Len);
  GetWindowsDirectory(Buffer,Len);

  Result := Buffer;
  FreeMem(Buffer);
end;
Die Listen scheinen aber alle unterschiedlich zu sein und eine auf Delphi bezogene Liste habe ich noch nicht gefunden.
Miniaturansicht angehängter Grafiken
shell32icons_350.png  
  Mit Zitat antworten Zitat