#include <shlobj.h>
bool ReadShortcut(LPWSTR lpwLnkFile, LPSTR lpDescFile)
{
bool bReturn = true;
IShellLink *pShellLink;
if(bReturn)
{
bReturn = (CoInitialize(NULL) == S_OK);
if(bReturn)
{
bReturn = CoCreateInstance (CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
IID_IShellLink, (void **)&pShellLink) >= 0;
if(bReturn)
{
IPersistFile *ppf;
bReturn = pShellLink->QueryInterface(IID_IPersistFile, (void **)&ppf) >= 0;
if(bReturn)
{
bReturn = ppf->Load(lpwLnkFile, TRUE) >= 0;
if(bReturn)
{
pShellLink->GetPath(lpDescFile, MAX_PATH, NULL, 0);
}
ppf->Release ();
}
pShellLink->Release ();
}
CoUninitialize();
}
}
return bReturn;
}
// 测试代码:
char szBuf[MAX_PATH];
ReadShortcut(L"C://GLWorld.lnk", szBuf);
MessageBox(0, szBuf, "", 0);
获取快捷方式的文件路径
最新推荐文章于 2023-08-25 16:15:59 发布
本文提供了一个使用 C++ 编写的示例代码,展示了如何读取 Windows 系统中的 .lnk 快捷方式文件,并从中获取目标文件的路径。此代码利用了 COM 组件对象模型来创建 ShellLink 对象并解析快捷方式。
2223

被折叠的 条评论
为什么被折叠?



