把图标存储在SHELL32.DLL

    技术2022-05-11  115

    uses   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,shellapi,Dialogs;

    type   TForm1 = class(TForm)     procedure FormCreate(Sender: TObject);     procedure FormClose(Sender: TObject; var Action: TCloseAction);   private     { Private declarations }   public     { Public declarations }   end;

    var   Form1: TForm1;   DesktopIcon: TimageList; // 做一个你喜欢的图象列表 implementation

    {$R *.DFM}

    procedure TForm1.FormCreate(Sender: TObject); Var Ico: TIcon;     Sfi: Tshfileinfo;     I  : Integer; begin

    //分配一个句柄给图象列表

      DesktopIcon:= TImageList.Create(Self); DesktopIcon.Handle := SHGetFileInfo('', 0, sfi, SizeOf(TSHFileInfo),      shGFI_SYSICONINDEX or SHGFI_SMALLICON); DesktopIcon.ShareImages := TRUE; For I:=0 to DesktopIcon.count -1 do   Begin   Ico := Ticon.Create;   DesktopIcon.GetIcon(I,Ico);   Ico.SaveToFile('c:/icons/'+inttostr(i)+'.ico');   Ico.Free;   End;

    end;

    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Desktopicon.free; end;

    end.


    最新回复(0)