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

怎么获取lnk关联的另一程序图标

2013-01-11 
如何获取lnk关联的另一程序图标RT这个桌面的QQ快捷方式是连接到C:\Program Files (x86)\Tencent\QQ\Bin\QQ

如何获取lnk关联的另一程序图标
RT
怎么获取lnk关联的另一程序图标
这个桌面的QQ快捷方式是连接到C:\Program Files (x86)\Tencent\QQ\Bin\QQProtect\Bin\QQProtect.exe
而QQProtect.exe并不包含图标资源。

QQ快捷方式实际的图标资源在%APPDATA%\Microsoft\Installer\{052CFB79-9D62-42E3-8A15-DE66C2C97C3E}\NewShortcut311_0951773981FA4AB2BC21B7DCEC95892A.exe中

我该如何通过该QQ快捷方式得到%APPDATA%\Microsoft\Installer\{052CFB79-9D62-42E3-8A15-DE66C2C97C3E}\NewShortcut311_0951773981FA4AB2BC21B7DCEC95892A.exe呢???
[解决办法]
SHGetFileInfo

SHFILEINFO sfi ;
SHGetFileInfo(TEXT("QQ.lnk"), 0, &sfi, sizeof(SHFILEINFO), SHGFI_ICONLOCATION);
//sfi.szDisplayName就是包含图标的文件的路径

[解决办法]
void CSampleView: OnDraw(CDC * pDC) 

if( :: SHGetFileInfo(_T("c:\\pwin95\\notepad.exe"),0, 
&stFileInfo,sizeof(stFileInfo),SHGFI_ICON)) 

pDC ->DrawIcon(10,10,stFileInfo.hIcon); 



或者:同样功能,Use ExtractIcon Function 
void CSampleView:: OnDraw(CDC *pDC) 

HICON hIcon=:: ExtractIcon(AfxGetInstanceHandle(),_T 
("NotePad.exe"),0); 
if (hIcon &&hIcon!=(HICON)-1) 
pDC->DrawIcon(10,10,hIcon); 

热点排行