vc 创建桌面快捷方式

该博客介绍了如何在VC环境中通过编程方式创建桌面快捷方式。具体实现涉及CoInitialize、SHGetSpecialFolderLocation、IShellLink等接口,设置快捷方式的目标路径、工作目录,并保存到桌面。如果操作失败,会捕获并记录错误信息。
摘要由CSDN通过智能技术生成
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否则会导致不可预料的错误
				
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值