欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何使用C#代碼創(chuàng)建快捷方式文件詳解

 更新時間:2018年08月06日 09:41:26   作者:呂毅  
在Windows中創(chuàng)建快捷方式很簡單,如果想用C#代碼的方式創(chuàng)建,就沒有那么方便了,因為.NET框架沒有提供直接創(chuàng)建快捷方式的方法。這篇文章主要給大家介紹了關于如何使用C#代碼創(chuàng)建快捷方式文件的相關資料,需要的朋友可以參考下

前言

快捷方式是一種特殊的文件,擴展名為 lnk。有很多種方式來創(chuàng)建快捷方式,首先我們看一下快捷方式是什么。對快捷方式點右鍵,選擇屬性菜單,在彈出的屬性對話框的常規(guī)Tab中可以看到,文件類型是快捷方式(.lnk),所以快捷方式本質(zhì)上是lnk文件。

不過使用 C# 代碼創(chuàng)建一個卻并不那么容易,本文分享三種不同的方式創(chuàng)建快捷方式。

隨處可用的代碼

這是最方便的方式了,因為這段代碼隨便放到一段代碼中就能運行:

/// <summary>
/// 為當前正在運行的程序創(chuàng)建一個快捷方式。
/// </summary>
/// <param name="lnkFilePath">快捷方式的完全限定路徑。</param>
/// <param name="args">快捷方式啟動程序時需要使用的參數(shù)。</param>
private static void CreateShortcut(string lnkFilePath, string args = "")
{
 var shellType = Type.GetTypeFromProgID("WScript.Shell");
 dynamic shell = Activator.CreateInstance(shellType);
 var shortcut = shell.CreateShortcut(lnkFilePath);
 shortcut.TargetPath = Assembly.GetEntryAssembly().Location;
 shortcut.Arguments = args;
 shortcut.WorkingDirectory = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
 shortcut.Save();
}

以上代碼為當前正在運行的程序創(chuàng)建一個快捷方式。當然,如果你希望給其他文件創(chuàng)建快捷方式,就改一改里面的代碼吧,將 TargetPath 和 WorkingDirectory 改為其他參數(shù)。


▲ 快捷方式屬性(其中 Target 等同于上面的 TargetPath 和 Arguments 一起,Start in 等同于上面的 WorkingDirectory)

引用 COM 組件

引用 COM 組件 Interop.IWshRuntimeLibrary.dll 能夠獲得類型安全,不過本質(zhì)上和以上方法是一樣的。

private static void CreateShortcut(string lnkFilePath, string args = "")
{
 var shell = new IWshRuntimeLibrary.WshShell();
 var shortcut = (IWshRuntimeLibrary.IWshShortcut) shell.CreateShortcut(linkFileName);
 shortcut.TargetPath = Assembly.GetEntryAssembly().Location;
 shortcut.Arguments = args;
 shortcut.WorkingDirectory = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
 shortcut.Save();
}

兼容 .NET 3.5 或早期版本

如果你還在使用 .NET Framework 3.5 或更早期版本,那真的很麻煩。同情你以下,不過也貼一段代碼:

private static void CreateShortcut(string lnkFilePath, string args = "")
{
 var shellType = Type.GetTypeFromProgID("WScript.Shell");
 var shell = Activator.CreateInstance(shellType);
 var shortcut = shellType.InvokeMember("CreateShortcut",
  BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod,
  null, shell, new object[] { linkFileName });
 var shortcutType = shortcut.GetType();
 shortcutType.InvokeMember("TargetPath",
  BindingFlags.Public | BindingFlags.Instance | BindingFlags.SetProperty,
  null, shortcut, new object[] { Assembly.GetEntryAssembly().Location });
 shortcutType.InvokeMember("Arguments",
  BindingFlags.Public | BindingFlags.Instance | BindingFlags.SetProperty, 
  null, shortcut, new object[] { args });
 shortcutType.InvokeMember("WorkingDirectory",
  BindingFlags.Public | BindingFlags.Instance | BindingFlags.SetProperty, 
  null, shortcut, new object[] { AppDomain.CurrentDomain.SetupInformation.ApplicationBase });
 shortcutType.InvokeMember("Save",
  BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod,
  null, shortcut, null);
}

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • C#開發(fā)可播放攝像頭及任意格式視頻的播放器

    C#開發(fā)可播放攝像頭及任意格式視頻的播放器

    這篇文章主要介紹了C#開發(fā)可播放攝像頭及任意格式視頻的播放器 ,在WPF中,借助Vlc.DotNet調(diào)用VLC類庫,實現(xiàn)視頻播功能。需要的朋友可以參考下
    2019-08-08
  • c#中的浮點型轉(zhuǎn)整形的舍取 四舍五入和銀行家舍入實現(xiàn)代碼

    c#中的浮點型轉(zhuǎn)整形的舍取 四舍五入和銀行家舍入實現(xiàn)代碼

    c#中的浮點型轉(zhuǎn)整形的舍取 四舍五入和銀行家舍入實現(xiàn)代碼,學習c#的朋友可以參考下
    2012-03-03
  • 使用C#實現(xiàn)在屏幕上畫圖效果的代碼實例

    使用C#實現(xiàn)在屏幕上畫圖效果的代碼實例

    本篇文章是對使用C#在屏幕上畫圖效果的實現(xiàn)方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • Unity3D使用GL實現(xiàn)圖案解鎖功能

    Unity3D使用GL實現(xiàn)圖案解鎖功能

    這篇文章主要為大家詳細介紹了Unity3D使用GL實現(xiàn)圖案解鎖功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • C#設置軟件開機自動運行的方法(修改注冊表)

    C#設置軟件開機自動運行的方法(修改注冊表)

    這篇文章主要介紹了C#設置軟件開機自動運行的方法,通過簡單修改注冊表開機啟動項實現(xiàn)軟件的開機啟動功能,非常簡單實用,需要的朋友可以參考下
    2016-06-06
  • C#多線程基本使用小結(jié)

    C#多線程基本使用小結(jié)

    C#多線程編程涉及Thread、Task、異步和Parallel等工具,Thread類用于創(chuàng)建獨立線程,通過Priority屬性設置優(yōu)先級,而線程池管理線程的調(diào)度和重用,本文給大家介紹C#多線程基本使用小結(jié),感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • C#中ListView用法實例

    C#中ListView用法實例

    我們經(jīng)常會在應用程序中使用列表的形式來展現(xiàn)一些內(nèi)容,所以學好ListView是非常必需的,下面這篇文章主要給大家介紹了關于C#中ListView用法的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • WinForm調(diào)用百度地圖接口用法示例

    WinForm調(diào)用百度地圖接口用法示例

    這篇文章主要介紹了WinForm調(diào)用百度地圖接口用法,結(jié)合具體實例形式簡單分析了WinForm WebBrower控件與前端百度接口交互的相關操作技巧,需要的朋友可以參考下
    2017-06-06
  • c# 實現(xiàn)圓形的進度條(ProgressBar)

    c# 實現(xiàn)圓形的進度條(ProgressBar)

    這篇文章主要介紹了c# 如何實現(xiàn)圓形的進度條(ProgressBar),幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C#對文件/文件夾操作代碼匯總

    C#對文件/文件夾操作代碼匯總

    有關文件的操作的內(nèi)容非常多,不過幾乎都是從下面的這些基礎方法中演化出來的。比如對內(nèi)容的修改,不外乎就是加上點字符串操作或者流操作。還有其它一些特別的內(nèi)容,等在開發(fā)項目中具體遇到后再添加。
    2015-04-04

最新評論