首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎么通过读取注册表来获取所有文件类型的ICO图标,并存到ImageList里面!

2012-03-04 
如何通过读取注册表来获取所有文件类型的ICO图标,并存到ImageList里面!!!如题,我想通过把系统中的所有的文

如何通过读取注册表来获取所有文件类型的ICO图标,并存到ImageList里面!!!
如题,我想通过把系统中的所有的文件类型从注册表中读取出来后,再获得那些ICO图标,然后存到ImageList里面。
或者是知道了文件的扩展名(如.txt),如何取得当前系统文本文件的ICO图标,并存放到ImageList中。[不能通过文件的路径来获取。]
如果有其它的方法也行,说出来参考一下。

[解决办法]
//把系统图标添加到ImageList中。

Procedure GetSysImageList(aImageList: TImageList);
Const
aFlags = SHGFI_SMALLICON OR SHGFI_SYSICONINDEX;
Var
SFileinfo: TShFileInfo;
begin
FillChar(SFileinfo, Sizeof(SFileinfo), #0);
aImageList.ShareImages := True; //共享图标,一定设置为True。
aImageList.DrawingStyle := dsTransparent; //设置图标的背景色透明
aImageList.Handle := ShGetFileInfo( ' ', 0, SFileInfo, SiZeof(SFileInfo), aFlags);
end;


//得到文件的图标索引

Function GetFileIconIndex(aExt: String): Integer;
Const
aFlags = SHGFI_SMALLICON OR SHGFI_SYSICONINDEX;
Var
SFileinfo: TShFileInfo;
begin
FillChar(SFileinfo, Sizeof(SFileinfo), #0);
ShGetFileInfo(Pchar(aExt), 0, SFileinfo, SizeOf(SFileinfo), aFlags);
Result := SFileinfo.iIcon;
end;

热点排行