1

我正在尝试以编程方式创建文件夹的快捷方式,就像右键单击文件夹->创建快捷方式一样

我正在使用

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 文件。然后我双击它并看到“打开方式”窗口,而不是重定向到目标文件夹。我在我的 lnk 属性中发现目标类型设置为“文件”而不是“文件夹”(如手动创建快捷方式的情况)

它应该作为符号链接工作,但我需要它作为快捷方式(所以我不使用CreateSymbolicLink

如何正确地做到这一点?

4

1 回答 1

1

我想通了 - 目标路径中的斜杠必须是向后的

于 2013-10-29T11:58:15.337 回答