如何创建开始菜单快捷方式

inv*_*igo 12 c# shortcut .net-4.0

我正在构建自定义安装程序.如何在开始菜单中创建可执行文件的快捷方式?这是我到目前为止所提出的:

    string pathToExe = @"C:\Program Files (x86)\TestApp\TestApp.exe";
    string commonStartMenuPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonStartMenu);
    string appStartMenuPath = Path.Combine(commonStartMenuPath, "Programs", "TestApp");
    // TODO: create shortcut in appStartMenuPath
Run Code Online (Sandbox Code Playgroud)

我的目标是Windows 7.

ran*_*ney 23

使用Windows脚本宿主(确保在"参考">"COM"选项卡下添加对Windows脚本宿主对象模型的引用):

using IWshRuntimeLibrary;

private static void AddShortcut()
{
    string pathToExe = @"C:\Program Files (x86)\TestApp\TestApp.exe";
    string commonStartMenuPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonStartMenu);
    string appStartMenuPath = Path.Combine(commonStartMenuPath, "Programs", "TestApp");

    if (!Directory.Exists(appStartMenuPath))
        Directory.CreateDirectory(appStartMenuPath);

    string shortcutLocation = Path.Combine(appStartMenuPath, "Shortcut to Test App" + ".lnk");
    WshShell shell = new WshShell();
    IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutLocation);

    shortcut.Description = "Test App Description";
    //shortcut.IconLocation = @"C:\Program Files (x86)\TestApp\TestApp.ico"; //uncomment to set the icon of the shortcut
    shortcut.TargetPath = pathToExe;
    shortcut.Save(); 
}
Run Code Online (Sandbox Code Playgroud)