以编程方式在Windows上创建文件夹快捷方

时间:2013-10-29 07:40:19

标签: c++ shell winapi

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

我正在使用

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

如何正确地做到这一点?

1 个答案:

答案 0 :(得分:1)

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