Shell编程问题:如何获得显示桌面,我的电脑,网上邻居等的图标
解决方案 »
- CtreeCtrl控件中如何得到当前正在展开的项
- VC中现实HOOK技术,能不能把DLL中的回调函数做成接口一样的,在主程序中现实..
- 一个有关动态数组问题!
- 哪位给个做splash window(闪屏)的代码吧!另外怎么该dialog里的字体
- 怎么从远程计算机复制多个.txt文件到本机指定目录
- 关于内联编译错误:怎么让VC支持内联编译?
- 急着写作业 在线等 。。。。。
- 我的MFC应用程序里面,如何检测一个程序是否安装成功?详细请进。。谢谢
- Dll里CreateWindowEx创建的Edit无法接受输入字符!
- 请问有华为的工长吗
- 大家请帮帮忙!一个关于数据库备份的问题!先谢了!
- 关于MSMQ的简单问题
去抓吧
// 得到系统图标,诸如文件夹,桌面图标
// 参数:
// 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 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;
}