• 歡迎訪問奇跡の海網站,本站不上傳任何資源,所有資源均來自于網絡,歡迎加入奇跡の海~!奇跡の海-WordPress QQ群
  • 本站下載資源為網絡上收集整理而來,并且以計算機技術研究交流為目的,版權歸原作者所有,僅供大家參考,學習,不存在任何商業目的與商業用途.
  • 本站系統鏡像均來自于官方原版,ed2k可視為P2P下載鏈接。所有操作系統默認均為試用版,如有正版密鑰可以有效激活,本站不提供任何激活和相關服務。

通過LNK文件(快捷方式)解析出目標文件的路徑

其他優化 奇跡の海 3年前 (2017-02-18) 658次瀏覽 已收錄 0個評論 掃描二維碼

引用頭:

#include <shlobj.h>

關鍵引用的類IShellLink:
IShellLink主要方法:
1、GetArguments:獲得參數信息
2、GetDescription:獲得描述信息
3、GetHotkey:獲得快捷鍵
4、GetIconLocation:獲得快捷方式圖標
5、GetIDList:獲得快捷方式的目標對象的item identifier list (Windows外殼中的每個對象如文件,目錄和打印機等都有唯一的item identifiler list)
6、GetPath: 獲得快捷方式的目標文件或目錄的全路徑
7、GetShowCmd:獲得快捷方式的運行方式,比如常規窗口,最大化
8、GetWorkingDirectory:獲得工作目錄
9、Resolve:按照一定的搜索規則試圖獲得目標對象,即使目標對象已經被刪除或移動,重命名

解析的處理流程:
1、初始化COM接口
2、創建IShellLink對象
3、從IShellLink對象中獲取IPersistFile對象接口
4、操作IShellLink對象
5、釋放IPersistFile對象接口
6、釋放IShellLink對象
7、釋放COM接口

//參數1:Lnk文件路徑,參數2:返回存放目標路徑  
  
bool GetShellPath(Char *Src,Char *ShellPath)  
  
{  
  
      bool blret=false;  
  
      ::CoInitialize(NULL); //初始化COM接口  
  
      IShellLink *psl = NULL;  
  
      //創建COM接口,IShellLink對象創建  
  
      HRESULT hr = CoCreateInstance(CLSID_ShellLink, NULL,CLSCTX_INPROC_SERVER,IID_IShellLink, (LPVOID *)&psl);  
  
      if (SUCCEEDED(hr))  
  
      {  
  
          IPersistFile *ppf ;  
          hr=psl->QueryInterface(IID_IPersistFile, (LPVOID*)&ppf);  
  
          if (SUCCEEDED(hr))  
  
         {  
  
             WCHAR wsz[MAX_PATH] ;  
  
             MultiByteToWideChar( CP_ACP, 0, Src, -1, wsz, MAX_PATH ) ;    //轉下寬字節  
  
             hr=ppf->Load(wsz, STGM_READ);    //加載文件  
  
             if (SUCCEEDED(hr))  
             {  
  
                     WIN32_FIND_DATA wfd ;  
  
                     psl->GetPath(ShellPath,MAX_PATH, (WIN32_FIND_DATA*)&wfd,SLGP_SHORTPATH);  //獲取目標路徑  
  
                     blret=true;  
  
             }  
  
             ppf->Release();   
  
         }  
  
         psl->Release();  //釋放對象  
  
       }  
  
       ::CoUninitialize();   //釋放COM接口  
  
  
       return blret;  
  
}  

版權聲明:本站所有文章和資源使用CC BY-NC-SA 4.0協議授權發布 , 轉載應當以相同方式注明文章來自“SeaOMC.COM->通過LNK文件(快捷方式)解析出目標文件的路徑!在下邊可以分享本文哦!
喜歡 (0)
[]
分享 (0)
奇跡の海
關于作者:
一個WordPress菜鳥!
發表我的評論
取消評論

表情 貼圖 加粗 刪除線 居中 斜體 簽到

Hi,您需要填寫昵稱和郵箱!

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址
中国福利彩票36选7开奖结果