获得“我的电脑”“桌面”“网上邻居”和其他各类文件的图标

ExtractIconEx("Explorer.exe", 3, NULL, &hIcon, 1); //获得桌面图标
  

 ExtractIconEx("Explorer.exe", 0, NULL, &hIcon, 1); //获得我的电脑图标
 

 ExtractIconEx("Explorer.exe", 1, NULL, &hIcon, 1); //获得文件搜索图标
 

 ExtractIconEx("Explorer.exe", 2, NULL, &hIcon, 1); //获得打印机图标
 

 ExtractIconEx("Explorer.exe", 6, NULL, &hIcon, 1); //获得回收站图标
 

 ExtractIconEx("Explorer.exe", 13, NULL, &hIcon, 1); //获得关闭文件夹图标
 

 ExtractIconEx("Shell32.dll", 4, NULL, &hIcon, 1); //获得打开文件夹图标
 

 ExtractIconEx("Shell32.dll", 20, NULL, &hIcon, 1); //获得回收站图标
 

// 功能:
// 得到系统图标,诸如文件夹,桌面图标
// 参数:
// int nIndex 指定图标的索引,可取如下值
// .   0 默认图标
// .   1 默认的   .doc   图标 *
// .   2 可执行文件图标
// .   3 关闭的文件夹图标
// .   4 打开的文件夹图标
// .   5 5.25 '   驱动器图标
// .   6 3.5 '   驱动器图标
// .   7 可移动的驱动器图标
// .   8 硬盘驱动器图标
// .   9 网络驱动器图标
// .   10 断开的网络驱动器图标
// .   11 CD-ROM驱动器图标
// .   12 RAM驱动器图标
// .   13 整个网络图标
// .   14 网络连接图标 u
// .   15 网络工作站图标  
// .   16 本地打印机图标 *
// .   17 网络图标 u
// .   18 网络工作组图标 u
// .   19 程序组图标 s
// .   20 文档图标 s
// .   21 设置图标 s
// .   22 查找图标 s
// .   23 帮助图标 s
// .   24 运行图标 s
// .   25 睡眠图标 s
// .   26 Docking   Station   图标u
// .   27 关机图标 s
// .   28 共享图标 t
// .   29 快捷方式的箭头图标 t
// .   30 大箭头图标 u
// .   31 空回收站图标 *
// .   32 满的回收站图标 *
// .   33 拨号网络图标 *
// .   34 桌面图标
// .   35 控制台图标 *
// .   36 程序组图标 s
// .   37 打印机文件夹图标 *
// .   38 字体文件夹图标 *
// .   39 Windows旗帜图标 *
// .   40 Audio   CD   图标          
// 后面标有符号的说明有特殊用法:  
// *   这些图标可以在注册表的其他地方的设置。
// t   这些图标必须是空白背景。  
// s   这些图标将用在开始菜单上。  
// u   这些图标可能并没有使用或不能通过注册表修改
// 返回
// 图标的句柄,失败返回NULL
HICON CTreeTestDlg::GetShellIcon(int nIndex)
{
 HICON   hIcon=NULL;  
 HKEY   hkeyShellIcons;  
 
 //打开注册表,读相应的图标项目
 if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE//Microsoft//Windows//CurrentVersion//Explorer//Shell Icons", 0, KEY_READ, &hkeyShellIcons)==ERROR_SUCCESS)  
 {  
  char   szBuffer[MAX_PATH];  
  DWORD   dwSize=MAX_PATH;  
  
  char   szIndex[4];  
  sprintf(szIndex, "%d ",nIndex);  
  if(RegQueryValueEx(hkeyShellIcons,szIndex,NULL,NULL,(LPBYTE)szBuffer,&dwSize)==ERROR_SUCCESS)  
  {
   CString   strFile,strIndex;  
   AfxExtractSubString(strFile,szBuffer,0, ', ');  
   AfxExtractSubString(strIndex,szBuffer,1, ', ');  
   ExtractIconEx(strFile,atoi(strIndex),NULL,&hIcon,1);  
  }  
  RegCloseKey(hkeyShellIcons);  
 }  
 
 //如果以上操作没有成功,直接到动态库中导出
 if(!hIcon)  
  ExtractIconEx( "SHELL32.DLL", nIndex, NULL, &hIcon, 1);  
 
 return   hIcon;  
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值