Save icons from shell32.dll 的Delphi源码

//Cust and paste into a new application and the output will
//be placed in a folder called c:\icons

//-------------------------- Cut -----

unit Unit1;

interface

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; // I Love you imagelist
implementation

{$R *.DFM}

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

// Assign Handle to imageList
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.

//---------------------paste---- 

posted @   Max Woods  阅读(271)  评论(0编辑  收藏  举报
编辑推荐:
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
阅读排行:
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· 语音处理 开源项目 EchoSharp
· 《HelloGitHub》第 106 期
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 使用 Dify + LLM 构建精确任务处理应用
历史上的今天:
2007-04-11 JAVA做验证码图片(转自CSDN)
2007-04-11 JSP彩色验证码
点击右上角即可分享
微信分享提示