C#がショートカットを作成するには、2つの方法があります

ワン:WSHと直接ショートカットを作成します
。1.まず、あなたが参照を追加する
参照方法を追加するプロジェクトを右クリックし、[参照の追加]を選択し、非常に単純である
COM]タブを選択し、スクリプトホストオブジェクトモデルにWindowsを選択
2.参照を名前空間
使用System.Runtime.InteropServices; //インタラクティブサービス
使用IWshRuntimeLibrary;

3.(コメントの詳細な説明が含まれている)ショートカットを作成するには、
オブジェクトWshShellインスタンス//
; WshShellシェル=新しい新しいWshShell()

//オブジェクトCreateShortcutの方法によりIWshShortcutを作成しますインターフェースの例は、オブジェクト
IWshShortcutショートカット=(IWshShortcut)shell.CreateShortcut(
    Environment.GetFolderPath(Environment.SpecialFolder.Desktop)+「//ShortCut.lnk」)、

宛先が配置されて設定された位置ショートカット//(ソースフルパス)
。shortcut.TargetPath = System.Reflection.Assembly.GetExecutingAssembly()場所;

作業ディレクトリアプリケーション//
//ユーザーが特定のディレクトリ、ショートカットの属性指定されたディレクトリを使用して、ターゲットアプリケーションを指定していないときロードまたはファイルを保存します。
= System.Environment.CurrentDirectory shortcut.WorkingDirectory;

//ターゲットアプリケーションウィンドウタイプ(1.Normalウィンドウ通常のウィンドウは、3.Maximizedウィンドウを最大化、最小化7.Minimized)
shortcut.WindowStyle = 1;

解説//ショートカット
= shortcut.Description「ChinaDforce YanMang」;

//あなたが(設定されていない場合、それはソースファイルのアイコンがデフォルトになります)ショートカットアイコンをカスタマイズすることができ
、「\\」//shortcut.IconLocation = System.Environment.SystemDirectory + +「Shell32は.dllは、165 ";

スタートアップパラメータ//アプリケーションを設定する(アプリケーションがサポートそれ場合)
//shortcut.Arguments =" / myWord / D4S「;

//(必要な場合)のショートカットキーを設定
//ショートカット。 =ホットキー「CTRL + ALT + D」;

//ショートカット保存
shortcut.Save();


短所:
書き込みこの方法で、あなたが持っている必要があります Interop.IWshRuntimeLibrary.dllの フォローを、
「1-ファイルの作成のために実行する権利。 プログラム 「人々 、それのトラブル。


2:VBSを作成し、作成し、実行することにより:
1.まず、ショートカットが作成されますVBSコードを見て:
'VBSインスタンス
SET WshShell = WScript.CreateObject( "WScript.Shell")
strDesktop = WshShell.SpecialFolders( "デスクトップ")'デスクトップディレクトリの取得
セットをoShellLink = WshShell.CreateShortcut(strDesktop &「\ D4S.lnk」)「ショートカットの格納ディレクトリおよび名称
oShellLink.TargetPath = 『X:\プログラムファイル \ XXX.EXE』」 実行可能ファイルを指し
oShellLink.WindowStyle = 1「の動作モードは、(フォームが道を開きます)
oShellLink.Hotkey = "SHIFT + CTRL + F" 'ショートカット
oShellLink.IconLocation = "X:\プログラムファイル \ XXX.EXE、0"' アイコン(同)を指定することができる
oShellLink.Description = "ChinaDforce YanMangの"「情報メモ
oShellLink.WorkingDirectory = "X:\プログラムファイル \" ' ホームディレクトリ
oShellLink.Save'ショートカットの保存

2。
?どのように我々はC#VBSの中でそれを使うのですか、私はそれがたくさんあるはずだと思う方法!
「最も愚か」が、最も直接的な方法をご紹介ここでは。
次のようにアイデアがあります:
>>> VBSは、すべてのコードテキストを生成する。
>>>書き込みの一時ファイル「temp.vbs」;
>>>は、ファイルの実行処理を開きます。

3.次は、C#で実装コードへの鍵です:
// VBSコードが生成される
文字列のVBSをthis.CreateVBS =();
テンポラリフォルダに書き込まれた//ファイル形式
; this.WriteToTemp(VBS)
//呼び出し処理実行
this.RunProcess();

// VBS生成するコード
列this.CreateVBS VBSを=();
/ /フォルダの一時ファイルの形式で書かれた
this.WriteToTemp(VBS);
//呼び出しプロセスの実行
this.RunProcess();
///
///作成VBSコード
///
///
プライベート文字列CreateVBS()
{
    文字列VBS String.Emptyを=;

    VBS = +( "SET WScript.CreateObject WshShell =(\" WScript.Shell \ ")\ R&LT \ N-");
    VBS = +(「= strDesktop WshShell。SpecialFolders(\ "デスクトップ\")\ rを\ n "は);
    VBS + =( "セットoShellLink = WshShell.CreateShortcut(strDesktop&\" \\ D4S.lnk \ ")\ R \ n");
    VBS + =(。 "oShellLink.TargetPath = \" "+ System.Reflection.Assembly.GetExecutingAssembly()ロケーション+ "\" \ R \ n");
    VBS + =( "oShellLink.WindowStyle = 1 \ R \ n");
    VBS + =( "oShellLink.Description = \" ChinaDforce YanMang \ "\ R \ n");
    VBS + =( "oShellLink.WorkingDirectory = \" "+ System.Environment.CurrentDirectory + "\" \ R \ n");
    VBS + =( "oShellLink.Save")。

    vbsファイルを返します。
}
///
///写入临时文件
///
///
ます。private void WriteToTemp(文字列VBS)
{
    するif(!文字列。


        TEMPFILE Environment.GetFolderPath =文字列(Environment.SpecialFolder.Templates)+ "[URL =ファイル:// \\ temp.vbs] \\ temp.vbs [/ URL]";
        //ファイル書き込み
        のFileStream fsの=新しいFileStreamを( TEMPFILE、FileMode.Create、FileAccess.Write);
        試み
        {
            //使用ここUnicodeEncodingは、ASCIIまたはUTF-8 VBS原因の歪みとしてしなければならない。
            新しい新UNI UnicodeEncoding =()System.Text.UnicodeEncoding;
            バイト[] B = UNIを。 GetBytesメソッド(VBS);
            fs.Write(B、0、てb.length);
            fs.Flush();
            fs.Close();
        }
        キャッチ(例外EX)
        {
            MessageBox.Show(ex.Message、「書き込み一時ファイルエラー」、MessageBoxButtons.OK、MessageBoxIcon.Error)がありました。
        }
        最後に
        {
            //リリースリソース
            fs.Disposeは();
        }
    }
}
///
VBS実行中のコード///
///
プライベートボイドRunProcess()
{
    文字列TEMPFILE = Environment.GetFolderPath(Environment.SpecialFolder.Templates)+ "\\ temp.vbs";
    IF(File.Exists(TEMPFILE))
    {
        // VBS実行
        Process.Start(TEMPFILE);
    }
}
プライベートボイドBTN出口_CLICK(SENDERオブジェクト、のEventArgs E)
{
    Application.Exitを() ;
    //明確な一時ファイル
    File.Delete(Environment.GetFolderPath(Environment.SpecialFolder.Templates)+ " \\ temp.vbs");
}

:ことを強調
VBSファイルを書き込む際に、使用してくださいUnicodeEncodingを
VBSが発生した場合、UTF-8およびASCIIコードは、ショートカットにつながることができますので
、間違ったショートカットにつながる、文字化け。
私はUTF8Encodingの時間を使用する必要がありました、ありません経路に配置することは、中国ができ含まれているが、中国はハングアップ!見える
気に私に詳細をかなり長い間、唯一見つけること。

 

 

出典:https://www.cnblogs.com/linmilove/archive/2009/06/10/1500989.html

ワン:WSHと直接ショートカットを作成します
。1.まず、あなたが参照を追加する
参照方法を追加するプロジェクトを右クリックし、[参照の追加]を選択し、非常に単純である
COM]タブを選択し、スクリプトホストオブジェクトモデルにWindowsを選択
2.参照を名前空間
使用System.Runtime.InteropServices; //インタラクティブサービス
使用IWshRuntimeLibrary;

3.(コメントの詳細な説明が含まれている)ショートカットを作成するには、
オブジェクトWshShellインスタンス//
; WshShellシェル=新しい新しいWshShell()

//オブジェクトCreateShortcutの方法によりIWshShortcutを作成しますインターフェースの例は、オブジェクト
IWshShortcutショートカット=(IWshShortcut)shell.CreateShortcut(
    Environment.GetFolderPath(Environment.SpecialFolder.Desktop)+「//ShortCut.lnk」)、

宛先が配置されて設定された位置ショートカット//(ソースフルパス)
。shortcut.TargetPath = System.Reflection.Assembly.GetExecutingAssembly()場所;

作業ディレクトリアプリケーション//
//ユーザーが特定のディレクトリ、ショートカットの属性指定されたディレクトリを使用して、ターゲットアプリケーションを指定していないときロードまたはファイルを保存します。
= System.Environment.CurrentDirectory shortcut.WorkingDirectory;

//ターゲットアプリケーションウィンドウタイプ(1.Normalウィンドウ通常のウィンドウは、3.Maximizedウィンドウを最大化、最小化7.Minimized)
shortcut.WindowStyle = 1;

解説//ショートカット
= shortcut.Description「ChinaDforce YanMang」;

//あなたが(設定されていない場合、それはソースファイルのアイコンがデフォルトになります)ショートカットアイコンをカスタマイズすることができ
、「\\」//shortcut.IconLocation = System.Environment.SystemDirectory + +「Shell32は.dllは、165 ";

スタートアップパラメータ//アプリケーションを設定する(アプリケーションがサポートそれ場合)
//shortcut.Arguments =" / myWord / D4S「;

//(必要な場合)のショートカットキーを設定
//ショートカット。 =ホットキー「CTRL + ALT + D」;

//ショートカット保存
shortcut.Save();


短所:
書き込みこの方法で、あなたが持っている必要があります Interop.IWshRuntimeLibrary.dllの フォローを、
「1-ファイルの作成のために実行する権利。 プログラム 「人々 、それのトラブル。


2:VBSを作成し、作成し、実行することにより:
1.まず、ショートカットが作成されますVBSコードを見て:
'VBSインスタンス
SET WshShell = WScript.CreateObject( "WScript.Shell")
strDesktop = WshShell.SpecialFolders( "デスクトップ")'デスクトップディレクトリの取得
セットをoShellLink = WshShell.CreateShortcut(strDesktop &「\ D4S.lnk」)「ショートカットの格納ディレクトリおよび名称
oShellLink.TargetPath = 『X:\プログラムファイル \ XXX.EXE』」 実行可能ファイルを指し
oShellLink.WindowStyle = 1「の動作モードは、(フォームが道を開きます)
oShellLink.Hotkey = "SHIFT + CTRL + F" 'ショートカット
oShellLink.IconLocation = "X:\プログラムファイル \ XXX.EXE、0"' アイコン(同)を指定することができる
oShellLink.Description = "ChinaDforce YanMangの"「情報メモ
oShellLink.WorkingDirectory = "X:\プログラムファイル \" ' ホームディレクトリ
oShellLink.Save'ショートカットの保存

2。
?どのように我々はC#VBSの中でそれを使うのですか、私はそれがたくさんあるはずだと思う方法!
「最も愚か」が、最も直接的な方法をご紹介ここでは。
次のようにアイデアがあります:
>>> VBSは、すべてのコードテキストを生成する。
>>>書き込みの一時ファイル「temp.vbs」;
>>>は、ファイルの実行処理を開きます。

3.次は、C#で実装コードへの鍵です:
// VBSコードが生成される
文字列のVBSをthis.CreateVBS =();
テンポラリフォルダに書き込まれた//ファイル形式
; this.WriteToTemp(VBS)
//呼び出し処理実行
this.RunProcess();

// VBS生成するコード
列this.CreateVBS VBSを=();
/ /フォルダの一時ファイルの形式で書かれた
this.WriteToTemp(VBS);
//呼び出しプロセスの実行
this.RunProcess();
///
///作成VBSコード
///
///
プライベート文字列CreateVBS()
{
    文字列VBS String.Emptyを=;

    VBS = +( "SET WScript.CreateObject WshShell =(\" WScript.Shell \ ")\ R&LT \ N-");
    VBS = +(「= strDesktop WshShell。SpecialFolders(\ "デスクトップ\")\ rを\ n "は);
    VBS + =( "セットoShellLink = WshShell.CreateShortcut(strDesktop&\" \\ D4S.lnk \ ")\ R \ n");
    VBS + =(。 "oShellLink.TargetPath = \" "+ System.Reflection.Assembly.GetExecutingAssembly()ロケーション+ "\" \ R \ n");
    VBS + =( "oShellLink.WindowStyle = 1 \ R \ n");
    VBS + =( "oShellLink.Description = \" ChinaDforce YanMang \ "\ R \ n");
    VBS + =( "oShellLink.WorkingDirectory = \" "+ System.Environment.CurrentDirectory + "\" \ R \ n");
    VBS + =( "oShellLink.Save")。

    vbsファイルを返します。
}
///
///写入临时文件
///
///
ます。private void WriteToTemp(文字列VBS)
{
    するif(!文字列。


        TEMPFILE Environment.GetFolderPath =文字列(Environment.SpecialFolder.Templates)+ "[URL =ファイル:// \\ temp.vbs] \\ temp.vbs [/ URL]";
        //ファイル書き込み
        のFileStream fsの=新しいFileStreamを( TEMPFILE、FileMode.Create、FileAccess.Write);
        試み
        {
            //使用ここUnicodeEncodingは、ASCIIまたはUTF-8 VBS原因の歪みとしてしなければならない。
            新しい新UNI UnicodeEncoding =()System.Text.UnicodeEncoding;
            バイト[] B = UNIを。 GetBytesメソッド(VBS);
            fs.Write(B、0、てb.length);
            fs.Flush();
            fs.Close();
        }
        キャッチ(例外EX)
        {
            MessageBox.Show(ex.Message、「書き込み一時ファイルエラー」、MessageBoxButtons.OK、MessageBoxIcon.Error)がありました。
        }
        最後に
        {
            //リリースリソース
            fs.Disposeは();
        }
    }
}
///
VBS実行中のコード///
///
プライベートボイドRunProcess()
{
    文字列TEMPFILE = Environment.GetFolderPath(Environment.SpecialFolder.Templates)+ "\\ temp.vbs";
    IF(File.Exists(TEMPFILE))
    {
        // VBS実行
        Process.Start(TEMPFILE);
    }
}
プライベートボイドBTN出口_CLICK(SENDERオブジェクト、のEventArgs E)
{
    Application.Exitを() ;
    //明確な一時ファイル
    File.Delete(Environment.GetFolderPath(Environment.SpecialFolder.Templates)+ " \\ temp.vbs");
}

:ことを強調
VBSファイルを書き込む際に、使用してくださいUnicodeEncodingを
VBSが発生した場合、UTF-8およびASCIIコードは、ショートカットにつながることができますので
、間違ったショートカットにつながる、文字化け。
私はUTF8Encodingの時間を使用する必要がありました、ありません経路に配置することは、中国ができ含まれているが、中国はハングアップ!見える
気に私に詳細をかなり長い間、唯一見つけること。

おすすめ

転載: www.cnblogs.com/mq0036/p/12118184.html