MFC创建桌面快捷方式
来源:互联网 发布:盘古数据科技有限公司 编辑:程序博客网 时间:2024/05/22 00:52
转自:http://blog.csdn.net/jiht594/article/details/6967480
BOOL CreateDesktopShotCut( CString strName, CString strSourcePath )
{
if(FAILED(CoInitialize(NULL)))
{
return FALSE;
}
int i;
char Path[MAX_PATH+1];
CString strDestDir;
i=CSIDL_DESKTOPDIRECTORY;
LPITEMIDLIST pidl;
LPMALLOC pShell;
if(SUCCEEDED(SHGetMalloc(&pShell)))
{
if(SUCCEEDED(SHGetSpecialFolderLocation(NULL,i,&pidl)))
{
if(!SHGetPathFromIDList(pidl,Path))
{
pShell->Free(pidl);
::CoUninitialize();
return FALSE;
}
pShell->Release();
strDestDir.Format("%s",Path);
strDestDir+="\\";
strDestDir+=strName;//设置桌面快捷方式的名字
strDestDir+=".lnk";
IShellLink* psl;
if(SUCCEEDED(CoCreateInstance
(CLSID_ShellLink,NULL,CLSCTX_INPROC_SERVER,IID_IShellLink,(LPVOID*)&psl)))
{
psl->SetPath(strSourcePath);//设置快捷方式的目标位置
//比如目标位置为C:\windows\a.txt 起始位置就应该设置为C:\windows否则会导致不可预料的错误
//如果是文件夹的快捷方式起始位置和目标位置可以设置为一样
psl->SetWorkingDirectory(strSourcePath); //设置快捷方式的起始位置
IPersistFile* ppf;
if(SUCCEEDED(psl->QueryInterface(IID_IPersistFile,(LPVOID*)
&ppf)))
{
WCHAR wsz[MAX_PATH];
MultiByteToWideChar
(CP_THREAD_ACP,MB_PRECOMPOSED,strDestDir,-1,wsz,MAX_PATH);//设置桌面快捷方式的名字
if(SUCCEEDED(ppf->Save(wsz,TRUE)))//保存快捷方式到桌面
{
ppf->Release();
psl->Release();
::CoUninitialize();
return TRUE;
}else
{
ppf->Release();
psl->Release();
::CoUninitialize();
return FALSE;
}
}else
{
ppf->Release();
psl->Release();
::CoUninitialize();
return FALSE;
}
}else
{
::CoUninitialize();
return FALSE;
}
}else
{
::CoUninitialize();
return FALSE;
}
}else
{
::CoUninitialize();
return FALSE;
}
}
- MFC创建桌面快捷方式
- MFC创建桌面快捷方式
- VC MFC 创建桌面快捷方式
- 创建锁定桌面快捷方式
- 创建桌面快捷方式
- 创建linux桌面快捷方式
- 如何创建桌面快捷方式
- DELPHI创建桌面快捷方式
- WinCE创建桌面快捷方式
- wince创建桌面快捷方式
- ubuntu 创建桌面快捷方式
- C++创建桌面快捷方式
- 创建桌面快捷方式
- 桌面快捷方式的创建
- linux创建桌面快捷方式
- Ubuntu创建桌面快捷方式
- python 创建桌面快捷方式
- 创建桌面快捷方式
- 制作前端布局的一点点学习经验
- springMVC3学习(七)--Interceptor拦截器
- POJ 2826 An Easy Problem?!
- 覆盖的面积 - HDU 1255 扫描线 重复两次的面积
- C++标准库---advance()&distance()&iter_swap()
- MFC创建桌面快捷方式
- eclipse常用设置
- springMVC3学习(八)--全局的异常处理
- 拿来主义:SQL数据库中触发器的应用案例
- 他人经验
- SQL string类型的数据按int类型排序
- 上的噶是地方撒旦法撒旦法萨德
- IOS倒计时相关代码
- mysql筛选指定时间段的数据,如三十天内的数据