• 创建快捷方式


     1 void CInstall_ProgressDlg::CreateShortCut(CString csLinkPath, CString csExePath, CString csIconPath)
     2 {
     3     HRESULT hres;
     4     hres = ::CoInitialize(NULL);
     5     if(S_OK == hres)
     6     {
     7         //delete old link
     8         CFileFind cfind;
     9         if(cfind.FindFile(csLinkPath)){
    10             CFile::Remove(csLinkPath);
    11         }
    12         IShellLink * pShellLink ;
    13         hres = ::CoCreateInstance( CLSID_ShellLink, NULL,CLSCTX_INPROC_SERVER, IID_IShellLink,(void **)&pShellLink);
    14         if( SUCCEEDED( hres))
    15         {
    16             pShellLink -> SetPath(csExePath);
    17             if(PathFileExists(csIconPath))
    18                 pShellLink -> SetIconLocation(csIconPath, 0); 
    19             pShellLink -> SetHotkey( MAKEWORD( 'R', HOTKEYF_SHIFT | HOTKEYF_CONTROL));
    20             CString csWorkingDir;
    21             csWorkingDir = csExePath.Left(2);
    22             csWorkingDir.Append(FILE_SEPARATOR);
    23             TRACE_CS(csWorkingDir);
    24             pShellLink -> SetWorkingDirectory(csWorkingDir);
    25             IPersistFile *pPersistFile;
    26             hres = pShellLink -> QueryInterface( IID_IPersistFile, (void **)&pPersistFile) ;
    27             if( SUCCEEDED(hres))
    28             {
    29                 hres = pPersistFile -> Save(csLinkPath, TRUE);
    30                 pPersistFile -> Release();
    31             }
    32             pShellLink -> Release();
    33         }
    34         ::CoUninitialize();
    35     }    
    36 } 
    View Code
     1 void CInstall_ProgressDlg::CreateStartMenu()
     2 {
     3     TCHAR chStartupFolder[MAX_PATH];
     4     /*
     5     *parm1: hwnd
     6     *parm2: path buffer
     7     *parm3: CSIDL_PROGRAMS 0x0002  / Start MenuPrograms
     8     *parm4: true:if file !exist to create, false:not create
     9     */
    10     SHGetSpecialFolderPath(this->GetSafeHwnd(), chStartupFolder,CSIDL_PROGRAMS,FALSE);
    11     CString csStartupFolder = chStartupFolder;
    12     csStartupFolder.Append(FILE_SEPARATOR);
    13     csStartupFolder.Append(FOLDER_APP_NAME);
    14     if(!PathFileExists(csStartupFolder)){
    15         g_InstallHelper.CreateInstallFolder(csStartupFolder);
    16     }
    17     CString csInstallPath;
    18     csInstallPath = g_InstallInfo.chInstallPath;
    19     CString csEXEFilePath;
    20     csEXEFilePath = csInstallPath;
    21     csEXEFilePath.Append(FILE_SEPARATOR);
    22     csEXEFilePath.Append(FILE_APP_NAME);
    23     CString csUnExeFilePath;
    24     csUnExeFilePath = csInstallPath;
    25     csUnExeFilePath.Append(FILE_SEPARATOR);
    26     csUnExeFilePath.Append(FILE_UNINSTALL_NAME);
    27     CString csLinkFileName = csStartupFolder;
    28     csLinkFileName.Append(FILE_SEPARATOR);
    29     csLinkFileName.Append(LINK_NAME);
    30     csLinkFileName.Append(LINK_EXT);
    31     CString csUnlinkFileName = csStartupFolder;
    32     csUnlinkFileName.Append(FILE_SEPARATOR);
    33     csUnlinkFileName.Append(LINK_UNINSTALL_NAME);
    34     csUnlinkFileName.Append(LINK_EXT);
    35     //get icon path
    36     CString csExeIconPath;
    37     csExeIconPath = csInstallPath;
    38     csExeIconPath.Append(FILE_SEPARATOR);
    39     csExeIconPath.Append(ICON_APP_EXE_NAME);
    40     CString csUnExeIconPath;
    41     csUnExeIconPath = csInstallPath;
    42     csUnExeIconPath.Append(FILE_SEPARATOR);
    43     csUnExeIconPath.Append(ICON_UNINSTALL_EXE_NAME);
    44     TRACE_CS(csLinkFileName);
    45     TRACE_CS(csEXEFilePath);
    46     TRACE_CS(csExeIconPath);
    47     TRACE_CS(csUnlinkFileName);
    48     TRACE_CS(csUnExeFilePath);
    49     TRACE_CS(csUnExeIconPath);
    50     CreateShortCut(csLinkFileName, csEXEFilePath, csExeIconPath);
    51     CreateShortCut(csUnlinkFileName, csUnExeFilePath, csUnExeIconPath);
    52 }
    View Code
  • 相关阅读:
    iOS开发 | 自定义不规则label
    监控redis的操作命令
    HTML常用标签
    前端学习【第一篇】: HTML内容
    MySQL数据库修改字段的长度
    python模块之:paramiko
    使用pymysql操作mysql数据库
    Python开发【第九篇】: 并发编程
    JNI调用实例
    JVM性能调优入门
  • 原文地址:https://www.cnblogs.com/guozht/p/9645189.html
Copyright © 2020-2023  润新知