BOOL CDlg::CreateDesktopShotCut(CString strName, CString strSourcePath)
{
if (FAILED(CoInitialize(NULL)))
return FALSE;
BOOL bRet = FALSE;
TCHAR Path[MAX_PATH+1];
CString strDestDir;
LPITEMIDLIST pidl;
LPMALLOC pShell;
if(SUCCEEDED(SHGetMalloc(&pShell)))
{
if(SUCCEEDED(SHGetSpecialFolderLocation(NULL,CSIDL_DESKTOPDIRECTORY,&pidl)))
{
if(!SHGetPathFromIDList(pidl,Path))
{
pShell->Free(pidl);
}
pShell->Release();
strDestDir.Format(_T("%s"),Path);
strDestDir+= _T("\\");
strDestDir+= strName;//设置桌面快捷方式的名字
strDestDir+= _T(".lnk");
IShellLink* psl;
if(SUCCEEDED(CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&psl)))
{
psl->SetPath(strSourcePath + _T("Player.exe"));//设置快捷方式的目标位置
//比如目标位置为C:\windows\a.txt 起始位置就应该设置为C:\windows否则会导致不可预料的错误
vc 创建桌面快捷方式
最新推荐文章于 2024-06-20 09:51:29 发布
该博客介绍了如何在VC环境中通过编程方式创建桌面快捷方式。具体实现涉及CoInitialize、SHGetSpecialFolderLocation、IShellLink等接口,设置快捷方式的目标路径、工作目录,并保存到桌面。如果操作失败,会捕获并记录错误信息。
摘要由CSDN通过智能技术生成