zoukankan      html  css  js  c++  java
  • 创建快捷方式

     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
  • 相关阅读:
    常用知识点集合
    LeetCode 66 Plus One
    LeetCode 88 Merge Sorted Array
    LeetCode 27 Remove Element
    LeetCode 26 Remove Duplicates from Sorted Array
    LeetCode 448 Find All Numbers Disappeared in an Array
    LeetCode 219 Contains Duplicate II
    LeetCode 118 Pascal's Triangle
    LeetCode 119 Pascal's Triangle II
    LeetCode 1 Two Sum
  • 原文地址:https://www.cnblogs.com/guozht/p/9645189.html
Copyright © 2011-2022 走看看