栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

复制代码 代码如下:
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();
    }   
}   

复制代码 代码如下:
void CInstall_ProgressDlg::CreateStartMenu()
{
    TCHAR chStartupFolder[MAX_PATH];
   
    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);
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/66400.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号