首先,我正在尝试通过SHGetFileInfo
Windows功能获取图标。
SHFILEINFO targetFileInfo;
std::memset(&targetFileInfo, 0, sizeof(targetFileInfo));
SHGetFileInfo((LPSTR) "file.txt", 0, &targetFileInfo,
sizeof(targetFileInfo),SHGFI_ICONLOCATION);
然后,我尝试通过targetFileInfo.hIcon
和targetFileInfo.iIcon
以及我编写的函数创建快捷方式。
CreateShortcut((LPSTR)application_path,
(LPSTR)target_app_path_lnkext,
(LPSTR) "Testr",
targetFileInfo.hIcon,
targetFileInfo.iIcon);
在该函数中,我有如下代码:
// CreateShortcut
// ...
psl->SetIconLocation((LPCSTR)hIcon, iIcon);
// ...
({psl
是IShellLink*
)该函数运行并且一切正常。但是快捷方式是使用默认图标创建的,而不是使用我设置为使用的图标。