我正在尝试以编程方式创建文件夹的快捷方式,就像右键单击文件夹一样 - >创建快捷方式
我正在使用
IShellLink* pShellLink;
IPersistFile* pPersistFile;
//........
hRes = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink,
(LPVOID*)&pShellLink);
//.....
hRes = pShellLink->SetPath(pszTargetfile);
hRes = pShellLink->SetArguments(pszTargetargs);
if (wcslen(pszDescription) > 0)
{
hRes = pShellLink->SetDescription(pszDescription);
}
if (wcslen(pszCurdir) > 0)
{
hRes = pShellLink->SetWorkingDirectory(pszCurdir);
}
if (wcslen(pszIconfile) > 0 && iIconindex >= 0)
{
hRes = pShellLink->SetIconLocation(pszIconfile, iIconindex);
}
hRes = pShellLink->QueryInterface(IID_IPersistFile, (LPVOID*)&pPersistFile);
if (SUCCEEDED(hRes))
{
wcscpy_s(wszLinkfile, pszLinkfile);
hRes = pPersistFile->Save(wszLinkfile, TRUE);
pPersistFile->Release();
}
pShellLink->Release();
//....
之后我获得了XXX.lnk文件。然后我双击它,看到窗口“打开方式”,而不是重定向到destinaiton文件夹。 我在lnk属性中发现目标类型设置为“文件”而不是“文件夹”(如手动创建快捷方式)
它应该作为符号链接工作,但我需要它作为一个快捷方式(所以我不使用 CreateSymbolicLink )
如何正确地做到这一点?
答案 0 :(得分:1)
我想通了 - 目标路径中的斜杠必须是后退