 |
操作系统: Windows
编程工具: Bcb,Vc,Vb
问题: 按文件类型获取其图标
现在,有很多软件如"WinZip" 能在它的文件列表中显示各类文件相关的图标(exe等可执行文件例外)。
注:是压缩包里的文件列表, 不是磁盘上已存在的文件。
SHGetFileInfo、ExtractAssociatedIcon等函数好象不能返回不存在的文件的图标. (如果根据不同的扩展名创建一个假文件, 获取图标后又删除, 未免太不专业了吧)能不能根据扩展名取得相关图标? 或其它方式?请专家指点该如何去做到?
水平: 高手(Rick)
|
| |
|
 |
SHGetFileInfo可以按文件类型取图标,如:
SHFILEINFO sfi;
HIMAGELIST hil;
ZeroMemory(&sfi,sizeof(sfi));
hil = SHGetFileInfo(".zip",
FILE_ATTRIBUTE_NORMAL,
&sfi,
sizeof(sfi),
SHGFI_USEFILEATTRIBUTES|SHGFI_ICON);
fftou的意见:
提供一下delphi的代码。并在win2k server, d6 下面测试通过! 在这里和大家分享。
uses shellapi;
var sinfo: SHFILEINFO;
begin
ZeroMemory(@sinfo, sizeof(sinfo));
SHGetFileInfo('.doc', FILE_ATTRIBUTE_NORMAL,
sinfo, sizeof(sinfo), SHGFI_USEFILEATTRIBUTES or SHGFI_ICON);
Image1.Picture.Icon.Handle := sinfo.hIcon
相关问题:
QA002609 "如何在vb中得到文件的系统默认图标"
此问题由李海回答。
附加关键字:编程, 源程序, programming, source code, C/C++, MFC, C++ Builder, Borland C++, Turbo C, C, BCB, Delphi, VCL, Borland, Visual Basic, VB, 磁盘、文件和目录, disk, file, fat, directory, folder。
|
| |
|
| |
|
| |
|
|