源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C++ 创建桌面快捷方式 开始菜单的实现代码

  • 时间:2020-07-17 18:55 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C++ 创建桌面快捷方式 开始菜单的实现代码
[u]复制代码[/u] 代码如下:
void CInstall_ProgressDlg::CreateShortCut(CString csLinkPath, CString csExePath, CString csIconPath) {     HRESULT hres;     hres = ::CoInitialize(NULL);     if(S_OK == hres)     {         //delete old link         CFileFind cfind;         if(cfind.FindFile(csLinkPath)){             CFile::Remove(csLinkPath);         }         IShellLink * pShellLink ;         hres = ::CoCreateInstance( CLSID_ShellLink, NULL,CLSCTX_INPROC_SERVER, IID_IShellLink,(void **)&pShellLink);         if( SUCCEEDED( hres))         {             pShellLink -> SetPath(csExePath);             if(PathFileExists(csIconPath))                 pShellLink -> SetIconLocation(csIconPath, 0);             pShellLink -> SetHotkey( MAKEWORD( 'R', HOTKEYF_SHIFT | HOTKEYF_CONTROL));             CString csWorkingDir;             csWorkingDir = csExePath.Left(2);             csWorkingDir.Append(FILE_SEPARATOR);             TRACE_CS(csWorkingDir);             pShellLink -> SetWorkingDirectory(csWorkingDir);             IPersistFile *pPersistFile;             hres = pShellLink -> QueryInterface( IID_IPersistFile, (void **)&pPersistFile) ;             if( SUCCEEDED(hres))             {                 hres = pPersistFile -> Save(csLinkPath, TRUE);                 pPersistFile -> Release();             }             pShellLink -> Release();         }         ::CoUninitialize();     }    }   
[u]复制代码[/u] 代码如下:
void CInstall_ProgressDlg::CreateStartMenu() {     TCHAR chStartupFolder[MAX_PATH];     /*     *parm1: hwnd     *parm2: path buffer     *parm3: CSIDL_PROGRAMS 0x0002  / Start Menu\Programs     *parm4: true:if file !exist to create, false:not create     */     SHGetSpecialFolderPath(this->GetSafeHwnd(), chStartupFolder,CSIDL_PROGRAMS,FALSE);     CString csStartupFolder = chStartupFolder;     csStartupFolder.Append(FILE_SEPARATOR);     csStartupFolder.Append(FOLDER_APP_NAME);     if(!PathFileExists(csStartupFolder)){         g_InstallHelper.CreateInstallFolder(csStartupFolder);     }     CString csInstallPath;     csInstallPath = g_InstallInfo.chInstallPath;     CString csEXEFilePath;     csEXEFilePath = csInstallPath;     csEXEFilePath.Append(FILE_SEPARATOR);     csEXEFilePath.Append(FILE_APP_NAME);     CString csUnExeFilePath;     csUnExeFilePath = csInstallPath;     csUnExeFilePath.Append(FILE_SEPARATOR);     csUnExeFilePath.Append(FILE_UNINSTALL_NAME);     CString csLinkFileName = csStartupFolder;     csLinkFileName.Append(FILE_SEPARATOR);     csLinkFileName.Append(LINK_NAME);     csLinkFileName.Append(LINK_EXT);     CString csUnlinkFileName = csStartupFolder;     csUnlinkFileName.Append(FILE_SEPARATOR);     csUnlinkFileName.Append(LINK_UNINSTALL_NAME);     csUnlinkFileName.Append(LINK_EXT);     //get icon path     CString csExeIconPath;     csExeIconPath = csInstallPath;     csExeIconPath.Append(FILE_SEPARATOR);     csExeIconPath.Append(ICON_APP_EXE_NAME);     CString csUnExeIconPath;     csUnExeIconPath = csInstallPath;     csUnExeIconPath.Append(FILE_SEPARATOR);     csUnExeIconPath.Append(ICON_UNINSTALL_EXE_NAME);     TRACE_CS(csLinkFileName);     TRACE_CS(csEXEFilePath);     TRACE_CS(csExeIconPath);     TRACE_CS(csUnlinkFileName);     TRACE_CS(csUnExeFilePath);     TRACE_CS(csUnExeIconPath);     CreateShortCut(csLinkFileName, csEXEFilePath, csExeIconPath);     CreateShortCut(csUnlinkFileName, csUnExeFilePath, csUnExeIconPath); }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部