C#Windows10 AllUsers启动(通过InstallShield或Coding)的快捷方式

时间:2017-10-19 19:34:01

标签: c# windows-10 shortcut

通过Install Shield(启动时的注册表设置) 并且从下面的代码中都创建了快捷方式,它们在Windows 10版本之前运行得很好,但快捷方式没有执行并且抛出错误,似乎是快捷方式的Windows 10问题。如何使用管理员权限

专门为Windows 10创建快捷方式
   static void ApplicationShortCut(string shortcutName)
    {
        string startUpFolderPath = Environment.GetFolderPath(Environment.SpecialFolder.Startup);
        string shortcutLocation = Path.Combine(startUpFolderPath, shortcutName + ".lnk");
        if (!Directory.Exists(startUpFolderPath))
            Directory.CreateDirectory(startUpFolderPath);

        if (System.IO.File.Exists(shortcutLocation))
        {
            System.IO.File.Delete(shortcutLocation);
        }

        WshShell shell = new WshShell();
        IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutLocation);
        shortcut.Description = "Program Desc";
        shortcut.TargetPath = @"C:\Program Files\Folder\ProgramName.exe";
        shortcut.Save();

    }

1 个答案:

答案 0 :(得分:1)

不要接受这个作为答案。只是张贴,所以你看到我使用的确切内容,以宣称它在我的最终工作。

如果我手动双击它,则快捷方式有效。 如果我重新启动计算机,快捷方式也可以。 AKA与机器人相关联的程序在机器启动时自行启动。

using System;
using System.IO;
using IWshRuntimeLibrary;

namespace MakingShortcutsInWindows10_46837557
{
    class Program
    {
        static void Main(string[] args)
        {
            ApplicationShortCut(@"C:\Program Files\EditPlus\editplus.exe", "BlahBlahDesc", "MakeItThisName");
        }

        static void ApplicationShortCut(string shortcutPath, string shortcutDescription, string shortcutName)
        {
            string startUpFolderPath = Environment.GetFolderPath(Environment.SpecialFolder.Startup);
            string shortcutLocation = Path.Combine(startUpFolderPath, shortcutName + ".lnk");
            if (!Directory.Exists(startUpFolderPath))
                Directory.CreateDirectory(startUpFolderPath);

            if (System.IO.File.Exists(shortcutLocation))
            {
                System.IO.File.Delete(shortcutLocation);
            }

            WshShell shell = new WshShell();
            IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutLocation);
            shortcut.Description = shortcutDescription;
            shortcut.TargetPath = shortcutPath;
            shortcut.Save();
        }

    }
}