创建和解析桌面快捷方式和
2012-06-04 10:15
239 查看
RT:
创建:
解析:
调用:
随手写的,标记下,
创建:
void CreateShortcut(LPCTSTR lpszExe, LPCTSTR lpszLnk) { ::CoInitialize(NULL); IShellLink *psl = NULL; IPersistFile *ppf = NULL; HRESULT hr = ::CoCreateInstance( CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&psl); if (!SUCCEEDED(hr)) { return; } psl->SetPath(lpszExe); //psl->SetArguments(); //psl->SetDescription(); //psl->SetHotkey(); //psl->SetIconLocation(); //psl->SetShowCmd(); TCHAR szWorkPath[MAX_PATH] = {0}; ::lstrcpy(szWorkPath, lpszExe); LPTSTR lp = szWorkPath; while (*lp) { lp++; } while (_T('\\')!=(*lp)) { lp--; } *lp = 0; psl->SetWorkingDirectory(szWorkPath); hr = psl->QueryInterface( IID_IPersistFile, (LPVOID*)&ppf); if (!SUCCEEDED(hr)) { return; } USES_CONVERSION; ppf->Save(T2COLE(lpszLnk), TRUE); if (ppf) { ppf->Release(); } if (psl) { psl->Release(); } ::CoUninitialize(); }
解析:
void GetLinkPath(CString szLink, CString& szPath) { CoInitialize(NULL); szPath = _T(""); IShellLink* psl = NULL; TCHAR szGotPath[MAX_PATH] = {0}; WIN32_FIND_DATA wfd = {0}; HRESULT hr = ::CoCreateInstance( CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&psl); if (!SUCCEEDED(hr)) { return; } IPersistFile* ppf = NULL; hr = psl->QueryInterface(IID_IPersistFile, (void**)&ppf); if (!SUCCEEDED(hr)) { return; } hr = ppf->Load(szLink.GetBuffer(), STGM_READ); szLink.ReleaseBuffer(); if (!SUCCEEDED(hr)) { return; } hr = psl->Resolve(0, 0); if (!SUCCEEDED(hr)) { return; } hr = psl-> GetPath(szGotPath, MAX_PATH, (WIN32_FIND_DATA*)&wfd, SLGP_SHORTPATH); if (SUCCEEDED(hr)) { szPath = szGotPath; } ppf->Release(); psl->Release(); CoUninitialize(); }
调用:
CreateShortcut( _T("C:\\WINDOWS\\system32\\notepad.exe"), _T("C:\\Documents and Settings\\guoyou.huang\\桌面\\hgy的记事本.lnk") ); CString szPath; GetLinkPath(_T("C:\\Documents and Settings\\guoyou.huang\\桌面\\我的记事本.lnk"), szPath);
随手写的,标记下,
相关文章推荐
- 解析Android应用启动后自动创建桌面快捷方式的实现方法
- 0.VC(Custom)-创建和解析桌面快捷方式(示例源码)
- Android创建桌面快捷方式
- 如何在ubuntu下创建eclipse的桌面快捷方式
- JSP等网站【创建带自定义图标的桌面快捷方式】
- Android创建桌面快捷方式
- C++创建和解析Windows快捷方式文件lnk的程序
- 网页创建快捷方式到桌面多种方法
- 双击桌面Internet Explorer图标时创建Internet Explorer快捷方式
- 创建桌面快捷方式
- 在桌面上创建网站的快捷方式
- ubuntu 11.10 创建桌面快捷方式
- Android添加(创建)、删除及判断是否存在桌面快捷方式的方法
- ubuntu 16.04 创建桌面快捷方式
- Windows CE创建桌面快捷方式
- ubuntu下创建eclipse桌面快捷方式
- Android开发:应用启动后自动创建桌面快捷方式(三星机常见)
- 学习:Web安装项目创建桌面快捷方式及重写安装类(转)
- Android在桌面创建快捷方式
- Android创建桌面快捷方式