プログラムで、任意の場所をハードコーディングする代わりにSHGetKnownFolderPathをKNOWNFOLDERID_Linksと共に使用して場所を取得し、 を使用してその場所にショートカット ファイルを作成します。IShellLink
最初の部分の C# の例を次に示します。
[DllImport("shell32.dll")]
static extern int SHGetKnownFolderPath(
[MarshalAs(UnmanagedType.LPStruct)] Guid knownFolderId,
uint flags,
IntPtr userToken,
[MarshalAs(UnmanagedType.LPWStr)] out string knownFolderPath);
// this corresponds to the KNOWNFOLDERID_Links constant:
public static readonly Guid Links = new Guid("bfb9d5e0-c6a9-404c-b2b2-ae6db6af4968");
public static string GetKnownFolderPath(Guid knownFolderId)
{
string path;
int result = SHGetKnownFolderPath(knownFolderId, 0, IntPtr.Zero, out path);
// … (error handling; check result for E_FAIL, E_INVALIDARG, or S_OK)
return path;
}