問題: C# でカスタム アイコンを使用してディレクトリへのショートカットを作成する必要があります (そのための .NET API はありません)。
これまでのところ、私のC#コードでは、IShellLinkオブジェクト(実際にはIShellLinkA)を照会し、SetPathを介してターゲットパスを設定し(最後のスラッシュなしでも試しまし@"S:\my\myDirectory\"
た)、SetIconLocationを介してアイコンを設定します。重要: は書き込みアクセス権のあるネットワーク ドライブです@"S:\my\myDirectory\icon.ico, 0"
Save(@"S:\foo.lnk", true);
S:
エクスプローラーの下に適切なアイコンのショートカットが表示されますが、ダブルクリックすると、「Windows はファイル myDirectory を検索しています。場所が参照機能を使用している場合」というエラー メッセージが表示されます。ショートカットを右クリックしてプロパティを選択すると、"Target type: file"
. エクスプローラーの下のディレクトリへのショートカットを手動で作成すると、"Target type: directory"
確かに明らかな何かが欠けていますが、最後の30分間、GoogleとMSDNで「ディレクトリへのショートカット/ IShellLink」を検索しましたが、何も見つかりませんでした
編集:リクエストに応じてソースを投稿:
このサイトのIShellLink 実装を使用しています。コードは非常に単純です。
ShellShortcut shortcut = new ShellShortcut(@"S:\foo.lnk");
shortcut.Description = "Sample item";
shortcut.IconPath = @"S:\my\myDirectory\icon.ico";
shortcut.IconIndex = Convert.ToInt32(0);
shortcut.Path = @"S:\my\myDirectory\";
shortcut.WorkingDirectory = @"S:\my\myDirectory\";
shortcut.Save();