读书人

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

发布时间: 2013-01-11 11:57:35 作者: rapoo

如何获取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);
}

读书人网 >VC/MFC

热点推荐