C#デスクトップでショートカットを作成する方法

3106 ワード

ソフトウェアのインストールが完了すると、基本的にデスクトップでショートカットが生成されますが、この機能はどのように実現されますか???
    これは
using IWshRuntimeLibrary;

    この中にはショートカットを作成する必要がある関数があります.
   まず
IWshShortcut MyShortCut;

MyShortCut.TargetPath

ショートカットを作成するために参照するファイルの場所を示します.
MyShortCut.Description

これは、ショートカットを右クリックした後に表示される説明情報です.
MyShortCut.IconLocation

これはショートカットのアイコンです
もちろん、MyShortCutをインスタンス化する前に、ショートカットを作成する場所を設定する必要があります.一般的にデスクトップに選択し、デスクトップの位置コードを取得するには、次のようにします.
Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)

一般的には、プログラムが独自にショートカットを作成するため、プログラムは現在のファイルの場所を自動的に取得する必要があります.ファイルの場所コードを自動的に取得するには、次のようにします.
string Name = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName);
            Name += "\\      .exe";

プレゼンテーションのためにボタンを置いて、ボタンをクリックして作成して、みんなは直接form_loadには、直接作成する効果があると書かれています.コードは次のとおりです.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using IWshRuntimeLibrary;
namespace       
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string Name = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName);
            Name += "\\      .exe";
            txtNmae.Text = Name;
            string LinkName;
            WshShellClass MyShell;
            IWshShortcut MyShortCut;
        
                try
                {
                    LinkName = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + "\\      .lnk";
                    MyShell = new IWshRuntimeLibrary.WshShellClass();
                    MyShortCut = (IWshShortcut)MyShell.CreateShortcut(LinkName);
                    MyShortCut.TargetPath = Name;
                    MyShortCut.WorkingDirectory = System.Environment.CurrentDirectory;
                    MyShortCut.WindowStyle = 1;
                    MyShortCut.Description = "BenBen  ";
                    MyShortCut.IconLocation = System.Environment.SystemDirectory + "\\" + "shell32.dll,1";
                    MyShortCut.Save();
                    MessageBox.Show("    ");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }

        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void txtNmae_Click(object sender, EventArgs e)
        {

        }
    }
}