在 .NET 中建立捷徑 [C#]

來源:互聯網
上載者:User

在 .NET 中建立捷徑 [C#]

Creating Shortcuts in .NET [C#]

 

Written by Allen Lee

 

建立捷徑對於絕大多數 Windows 使用者來說都是小菜一碟了,然而,這項工作卻為程式員帶來不少麻煩。.NET 沒有提供簡便直接的建立捷徑的方法,那麼在 .NET 中我們如何為應用程式建立捷徑呢?

 

1. 捷徑檔案

捷徑實質上是一個副檔名為 .LNK 的檔案。右擊一個捷徑檔案並選擇屬性,跳到捷徑選項卡,2所示:

你可以看到一個捷徑包含如下資料:

  • 捷徑的名字
  • 捷徑所指向的目標所在的位置
  • 捷徑所指向的目標的工作目錄
  • 啟用該捷徑的熱鍵
  • 捷徑所指向的目標運行時的視窗風格(普通、最大化和最小化)
  • 該捷徑的描述性文字
  • 捷徑的表徵圖所在的位置

 

2. 使用 WSH 建立捷徑

2.1 添加 WSH 的引用

這裡我使用 Visual C# 2005 Express Edition Beta 2 來開發的,添加引用的方法非常簡單,右擊你的項目並選擇添加引用,選擇 COM 選項卡並選擇 Windows Script Host Object Model,3所示:

2.2 建立你的捷徑

建立一個捷徑的完整代碼如下:

// Code #01

using System;
using IWshRuntimeLibrary;

class Program
{
    static void Main(string[] args)
    {
        WshShell shell = new WshShell();
        IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(
            Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) +
            "\\" + "Allen's Application.lnk"
            );
        shortcut.TargetPath = System.Reflection.Assembly.GetExecutingAssembly().Location;
        shortcut.WorkingDirectory = System.Environment.CurrentDirectory;
        shortcut.WindowStyle = 1;
        shortcut.Description = "Launch Allen's Application";
        shortcut.IconLocation = System.Environment.SystemDirectory + "\\" + "shell32.dll, 165";
        shortcut.Save();
    }
}

首先,我們建立一個 WshShell 的執行個體對象,接著通過該對象的 CreateShortcut 方法來建立 IWshShortcut 介面的執行個體對象,傳遞給 CreateShortcut 方法的參數是將要建立的捷徑的完整路徑(包括該捷徑的名字)。接下來,我們就要設定 IWshShortcut 執行個體對象的相關屬性值了。

2.3 設定捷徑的屬性

2.3.1 TargetPath

該屬性僅用於設定或者讀取捷徑的目標所在的位置。Code #01 中,將要建立的捷徑指向本應用程式。

2.3.2 WorkingDirectory

該屬性指定應用程式的工作目錄,當使用者沒有指定一個具體的目錄時,捷徑的目標應用程式將使用該屬性所指定的目錄來裝載或儲存檔案。

2.3.3 WindowStyle

該屬性指定捷徑的目標應用程式的視窗為普通(原始)狀態、最小化或者最大化。對比圖1中 Run 下拉式功能表的項,該屬性的值及其意義如下:

Value Meaning
1 Normal window
3 Maximized
7 Minimized

2.3.4 Description

該屬性設定用於設定或者讀取捷徑的附加說明。

2.3.5 IconLocation

該屬性用於指定捷徑的圖表的所在位置,它的值包含一個完整的路徑和一個索引值。Code #01 中,捷徑的表徵圖被設定為系統檔案夾中的 Shell32.DLL 檔案所包含的第165個表徵圖。

2.4 產生捷徑

CreateShortcut 僅僅建立一個 IWshShortcut 的執行個體對象,它不會為你產生任何捷徑,當一切就緒後,你必須調用 IWshShortcut.Save 方法才能產生捷徑檔案。

 

3. 活用捷徑簡化操作

想象一下你的應用程式支援命令列參數組合運行,例如:

App /out:output.txt /sortby:date /desc

而你又希望只需要輕輕按下 CTRL+ALT+F11 就可以直接啟動這項功能,這時你就需要用到 IWshShortcut 的 Arguments 和 Hotkey 兩個屬性了:

// Code #02

shortcut.Arguments = "/out:output.txt /sortby:date /desc";
shortcut.Hotkey = "CTRL+ALT+F11"; 

注意:Hotkey 屬性的值裡面不能包含空格。

你可以在應用程式裡面像平常那樣處理命令列參數:

// Code #03

class Program
{
    static void Main(string[] args)
    {
        foreach (string arg in args)
        {
            Console.WriteLine(arg);
        }
    }
}

// Output:
//
// /out:output.txt
// /sortby:date
// /desc

現在,你把這個捷徑放到案頭,每當你需要啟動並執行時候,輕輕的按下 CTRL+ALT+F11 就行了,Cool ~ ~ ~

 

Appendix A

Mattias Sjogren 建立了一個名叫 ShellShortcut 的封裝類(wrapper class),你可以在你的項目中直接使用它。有興趣的話,你也可以對其進行一番研究。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.