//Summary: 创意建快捷方式
//Parameters:
// pszExePath:目标程序路径
// psArguments:程序参数
// pszWorkingDir:工作目录
// pszDescription:快捷方式描述
// pszIconPath:快捷方式图标
// pszDestinationPath:快捷方式路径(后缀.lnk)
//Return : true 创建成功,false 创建失败
BOOL createShortcut(LPCTSTR pszExePath, LPCTSTR psArguments, LPCTSTR pszWorkingDir, LPCTSTR pszDescription, LPCTSTR pszIconPath, LPCTSTR pszDestinationPath)
{
CoInitialize(NULL);
IShellLink* pShellLink = NULL;
HRESULT hres;
hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_ALL, IID_IShellLink, (void**)&pShellLink);
if (SUCCEEDED(hres))
{
pShellLink->SetPath(pszExePath);
pShellLink->SetArguments(psArguments);
pShellLink->SetDescription(pszDescription);
pShellLink->SetIconLocation(pszIconPath,0);
pShellLink->SetWorkingDirectory(pszWorkingDir);
IPersistFile *pPersistFile;
hres = pShellLink->QueryInterface(IID_IPersistFile, (void**)&pPersistFile);
if (SUCCEEDED(hres))
{
hres = pPersistFile->Save(pszDestinationPath,TRUE);
pPersistFile->Release();
}
else
{
return FALSE;
}
pShellLink->Release();
}
else
{
return FALSE;
}
CoUninitialize();
return TRUE;
}
使用头文件
#include <Shobjidl.h>
#include <shlobj.h>
使用动态库
ole32.lib