软件注册站
热情软件屋

 
按文件类型获取其图标
编号: QA003693    
建立日期: 2000年12月21日 最后修改日期: 2005年8月22日
所属类别: C/C++ - 磁盘、文件和目录

Delphi - 磁盘、文件和目录

Visual Basic - 磁盘、文件和目录
   
    操作系统: 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

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio