通过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();
}
最佳答案
不要接受这个作为答案。只是发布,这样您就可以准确地看到我使用过的东西,声称它可以正常工作。
如果我手动双击该快捷方式,它将起作用。
如果重新启动计算机,快捷方式也可以使用。也就是,当机器启动时,链接到快捷方式的程序会自行启动。
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();
}
}
}
关于c# - 适用于所有用户的C#Windows 10启动快捷方式(通过InstallShield或编码),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46837557/