通过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();
}
答案 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();
}
}
}