C#如何獲取快捷方式指向的目標文件


前幾天,做個小程序時遇到的問題,在百度上搜索了很久,沒有發現好的解決方案,在英文網站上立刻搜到辦法,看來還是國外的資源要全面一些,只是Google經常訪問不正常,沒辦法啊。

C#如何獲取快捷方式指向的目標文件”,這個問題在百度上搜索的大多數結果是打開快捷方式文件,把快捷方式文件按字節讀入指數組中,然后自己編寫代碼逐字節讀出目標文件路徑,這種方法初學者就有點搞不清楚,特別是不了解捷方式文件組織方式的,用這個方法很費勁。

其實C#解決起來很簡單,原理就是利用IWshRuntimeLibrary中的IWshShortcut類,就可以獲取快捷方式指向的目標文件了。

以下是具體步驟:

一、在項目中添加“Windows Script Host Object Model”的引用

在項目上單擊右鍵,選擇“添加引用”,在“添加引用”對話框中選擇“COM”組件選項卡,然后單擊選擇“Windows Script Host Object Model”,最后確定。在項目中就會出現“IWshRuntimeLibrary”,下面就可以編寫代碼了。

技術貼:C#如何獲取快捷方式指向的目標文件

技術貼:C#如何獲取快捷方式指向的目標文件

技術貼:C#如何獲取快捷方式指向的目標文件

二、代碼

用以下代碼可以實現了。

1、首先引用這些:

using System.IO;

using IWshRuntimeLibrary;

 

2、編寫函數:

   

private string 獲取快捷方式文件指向的路徑(string 快捷方式文件的路徑)
        {
            //快捷方式文件的路徑 = @"d:\Test.lnk";
            if (System.IO.File.Exists(快捷方式文件的路徑))
            {
                WshShell shell = new WshShell();
                IWshShortcut 當前快捷方式文件IWshShortcut類 = (IWshShortcut)shell.CreateShortcut(快捷方式文件的路徑);
                //快捷方式文件指向的路徑.Text = 當前快捷方式文件IWshShortcut類.TargetPath;
                //快捷方式文件指向的目標目錄.Text = 當前快捷方式文件IWshShortcut類.WorkingDirectory;
                return 當前快捷方式文件IWshShortcut類.TargetPath;
            }
            else
            {
                return "";
            }
        } 

 

 

我參考的英文原文鏈接:

http://forums.overclockers.co.uk/showthread.php?t=17966879


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM