程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> C++ 創建桌面快捷方式 開始菜單的實現代碼

C++ 創建桌面快捷方式 開始菜單的實現代碼

編輯:更多關於編程
    這篇文章介紹了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];
    /*
    *parm1: hwnd
    *parm2: path buffer
    *parm3: CSIDL_PROGRAMS 0x0002 / Start MenuPrograms
    *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);
    }

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved