首页 > 其他 > 详细

在桌面上创建快捷方式

时间:2018-06-27 19:26:29      阅读:194      评论:0      收藏:0      [点我收藏+]
BOOL CreateLink(LPWSTR szPath, LPCWSTR szLink) { HRESULT hres; IShellLink * psl; IPersistFile* ppf; WORD wsz[MAX_PATH]; CoInitialize(NULL); hres = CoCreateInstance( CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void **)&psl); if (FAILED(hres)) { return FALSE; } psl->SetPath(szPath); psl->SetHotkey(MAKEWORD('M', HOTKEYF_SHIFT | HOTKEYF_CONTROL)); hres = psl->QueryInterface(IID_IPersistFile, (void**)&ppf); if (FAILED(hres)) return FALSE; //MultiByteToWideChar(CP_ACP, 0, szLink, -1, (LPWSTR)&wsz[0], MAX_PATH); hres = ppf->Save((LPCOLESTR)szLink, STGM_READWRITE); ppf->Release(); psl->Release(); CoUninitialize(); return TRUE; } VOID  CreateShortCut(CString  strAppName) { TCHAR DeskTopPath[MAX_PATH]; TCHAR currDirPath[MAX_PATH]; LPITEMIDLIST pidl = NULL; if (SUCCEEDED(SHGetFolderLocation(NULL, CSIDL_DESKTOP, NULL, 0, &pidl))) { SHGetPathFromIDList(pidl, DeskTopPath); IMalloc* pMalloc = NULL; ::SHGetMalloc(&pMalloc); pMalloc->Free(pidl); pMalloc->Release(); } CString tmp1 = GetApplicationPath1() + strAppName; TCHAR szFilename[MAX_PATH]; TCHAR  szDrive[MAX_PATH]; TCHAR  szPath[MAX_PATH]; TCHAR  szExt[MAX_PATH]; _wsplitpath_s(tmp1, szDrive,255, szPath,255, szFilename,255, szExt,255); USES_CONVERSION; if (_access(W2A(tmp1), 0) == -1)return; CString tmp; tmp = DeskTopPath; tmp += "\\"; tmp += szFilename; tmp += _T(".lnk"); if (!CreateLink(tmp1.GetBuffer(), tmp)) AfxMessageBox(_T("创建快捷方式出错!")); tmp1.ReleaseBuffer(); }


在桌面上创建快捷方式

原文:http://blog.51cto.com/9233403/2133394

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!