程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> c++ windows 創建快捷方式

c++ windows 創建快捷方式

編輯:C++入門知識

 創建一個exe程序的快捷方式

 


記得一定要先定義初始化,同時檢測函數的返回值,這是一個好習慣!

 

 

[cpp] 
BOOL createShortcut(LPCTSTR pszExePath,LPCTSTR pszWorkingDir, LPCTSTR pszDescription,  LPCTSTR pszIconPath, LPCTSTR pszDestinationPath) 
    { 
        CoInitialize(NULL); 
        IShellLink* pShellLink = NULL; 
 
        HRESULT hres; 
        hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_ALL, IID_IShellLink, (void**)&pShellLink); 
        std::cout<< std::hex << hres <<std::endl; 
 
        if (SUCCEEDED(hres)) 
        { 
            pShellLink->SetPath(pszExePath); 
            pShellLink->SetDescription(pszDescription); 
            pShellLink->SetIconLocation(pszIconPath,0); 
            pShellLink->SetWorkingDirectory(pszWorkingDir); 
 
            IPersistFile *pPersistFile; 
            hres = pShellLink->QueryInterface(IID_IPersistFile, (void**)&pPersistFile); 
 
            if (SUCCEEDED(hres)) 
            { 
                hres = pPersistFile->Save(pszDestinationPath,TRUE); 
                pPersistFile->Release(); 
            } 
            else 
            { 
                std::cout<<"ERRO 2"<<std::endl; 
                return FALSE; 
            } 
 
            pShellLink->Release(); 
        } 
        else 
        { 
            std::cout<<"ERRO 1"<<std::endl; 
            return FALSE; 
        } 
        CoUninitialize(); 
        return TRUE; 
    } 

BOOL createShortcut(LPCTSTR pszExePath,LPCTSTR pszWorkingDir, LPCTSTR pszDescription,  LPCTSTR pszIconPath, LPCTSTR pszDestinationPath)
 {
  CoInitialize(NULL);
  IShellLink* pShellLink = NULL;

  HRESULT hres;
  hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_ALL, IID_IShellLink, (void**)&pShellLink);
  std::cout<< std::hex << hres <<std::endl;

  if (SUCCEEDED(hres))
  {
   pShellLink->SetPath(pszExePath);
   pShellLink->SetDescription(pszDescription);
   pShellLink->SetIconLocation(pszIconPath,0);
   pShellLink->SetWorkingDirectory(pszWorkingDir);

   IPersistFile *pPersistFile;
   hres = pShellLink->QueryInterface(IID_IPersistFile, (void**)&pPersistFile);

   if (SUCCEEDED(hres))
   {
    hres = pPersistFile->Save(pszDestinationPath,TRUE);
    pPersistFile->Release();
   }
   else
   {
    std::cout<<"ERRO 2"<<std::endl;
    return FALSE;
   }

   pShellLink->Release();
  }
  else
  {
   std::cout<<"ERRO 1"<<std::endl;
   return FALSE;
  }
  CoUninitialize();
  return TRUE;
 }


 

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