如何在桌面或者开始菜单中创建快捷方式
来源:互联网 发布:西安旅游 知乎 编辑:程序博客网 时间:2024/05/21 11:12
源地址:http://blog.csdn.net/vcforever/article/details/326269
作者:vcforever
//在桌面或者开始菜单中创建快捷方式//pazSrcPath:源文件路径//bDesktop:标志位,用来判断是否在桌面上创建快捷方式,真,在桌面上创建,否则在开始菜单中创建bool createShortcut(const char* pszSrcPath, bool bDesktop){ CoInitialize(NULL); bool bRet = false; IShellLink* psl; LPITEMIDLIST pidl; LPMALLOC pShellMalloc; std::string strDesktopPath; std::string strStartMenuPath; const int nFolder[2] = { CSIDL_DESKTOPDIRECTORY,CSIDL_STARTMENU }; if (SUCCEEDED(SHGetMalloc(&pShellMalloc))) { char Path[MAX_PATH + 1]; for (int i = 0; i < 2; i++) { if (SUCCEEDED(SHGetSpecialFolderLocation(NULL, nFolder[i], &pidl))) { if (SHGetPathFromIDList(pidl, Path)) { if (i == 0) strDesktopPath = Path; else strStartMenuPath = Path; } pShellMalloc->Free(pidl); } } pShellMalloc->Release(); } char szFileTitle[MAX_PATH] = { 0 }; ::GetFileTitle(pszSrcPath, szFileTitle, MAX_PATH); std::string str; if (bDesktop) str = strDesktopPath; else str = strStartMenuPath; str += "//"; str += std::string(szFileTitle); str += ".lnk"; HRESULT hr = CoCreateInstance(CLSID_ShellLink, NULL,CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&psl); if (SUCCEEDED(hr)) { IPersistFile* ppf; psl->SetPath(pszSrcPath); psl->SetDescription("Shortcut created by custom code"); psl->SetShowCmd(SW_SHOW); if (SUCCEEDED(psl->QueryInterface(IID_IPersistFile, (LPVOID *)&ppf))) { WORD mbw[MAX_PATH]; MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, str.c_str(), -1, mbw, MAX_PATH); if (SUCCEEDED(ppf->Save(mbw, TRUE))) bRet = true; ppf->Release(); } psl->Release(); } CoUninitialize(); return bRet;}
- 如何在桌面或者开始菜单中创建快捷方式
- 如何在桌面或者开始菜单中创建快捷方式
- 如何创建快捷方式并添加到开始菜单、桌面、任务栏....
- Qt之创建桌面和开始菜单快捷方式
- Qt创建桌面和开始菜单快捷方式
- C#如何编程在桌面创建快捷方式
- 如何自动在桌面创建快捷方式
- 创建或者删除桌面快捷方式
- 如何创建桌面快捷方式
- 创建快捷方式到桌面、任务栏、开始菜单、快速启动栏、程序组中
- Ubuntu下如何在桌面创建一个桌面快捷方式
- 一分钟学会创建开始菜单程序组和桌面快捷方式
- Asp.Net-创建网站的快捷方式到桌面,开始菜单,收藏夹
- 如何在开始菜单里添加快捷方式???
- Android_如何创建桌面快捷方式
- 在Win桌面创建快捷方式
- 在Windows桌面创建快捷方式
- wince 在桌面创建快捷方式
- android调试 反汇编
- 11g数据库备份不能导出空表的问题
- VC窗口类的相关问题
- android音频系统
- 消息队列的简单处理
- 如何在桌面或者开始菜单中创建快捷方式
- HDU 1005 Number Sequence
- PHP与MySQL连接及SQL语言基本语法
- 简单的gtk程序
- Mac+IOS 总结
- 测试环境为 Ububtu8.04.2和Windows Xp
- Linq Expressions DebuggerVisualizer
- 几种字符乱码
- 最小公倍数