原理:
把我们程序的快捷方式,创建一个到系统启动文件夹内。
准备:
1、给我们项目添加引用:Com 中搜索 Windows Script Host Object Model
2、创建操作辅助类:StartHelper.cs
开源是程序员的基本美德
/// <summary>
/// 开机启动 辅助类
/// </summary>
public class StartHelper
{
/// <summary>
/// 快捷方式的文件名称
/// </summary>
public static string AppName = "ReleaseTool";
/// <summary>
/// 当前程序路径
/// </summary>
public static string AppFile = Application.ExecutablePath;
/// <summary>
/// 当前用户开机启动文件夹
/// </summary>
public static string Startup = Environment.GetFolderPath(Environment.SpecialFolder.Startup);
/// <summary>
/// 开机启动
/// </summary>
/// <param name="directory">启动文件夹位置</param>
/// <param name="shortcutName">程序名称</param>
/// <param name="targetPath">指定目标路径</param>
/// <param name="description">快捷方式备注</param>
/// <param name="iconLocation">图标</param>
/// <returns></returns>
public static bool Create(string directory, string shortcutName, string targetPath, string description = null, string iconLocation = null)
{
try
{
if (!Directory.Exists(directory))
{
Directory.CreateDirectory(directory);
}
//添加引用 Com 中搜索 Windows Script Host Object Model
string shortcutPath = Path.Combine(directory, $"{shortcutName}.lnk");
IWshRuntimeLibrary.WshShell shell = new IWshRuntimeLibrary.WshShell();
IWshRuntimeLibrary.IWshShortcut shortcut =
(IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut(shortcutPath); //创建快捷方式对象
shortcut.TargetPath = targetPath; //指定目标路径
shortcut.WorkingDirectory = Path.GetDirectoryName(targetPath); //设置起始位置
shortcut.WindowStyle = 1; //设置运行方式,默认为常规窗口
shortcut.Description = description; //设置备注
shortcut.IconLocation = string.IsNullOrWhiteSpace(iconLocation) ? targetPath : iconLocation; //设置图标路径
shortcut.Save(); //保存快捷方式
return true;
}
catch (Exception ex)
{
LogHelper.WriteLog(ex, "开机启动Create异常");
return false;
}
}
/// <summary>
/// 删除开机启动项
/// </summary>
/// <param name="directory">启动文件夹位置</param>
/// <param name="shortcutName">程序名称</param>
/// <returns></returns>
public static bool Delete(string directory, string shortcutName)
{
try
{
string shortcutPath = Path.Combine(directory, $"{shortcutName}.lnk");
if (File.Exists(shortcutPath))
{
File.Delete(shortcutPath);
}
return true;
}
catch (Exception ex)
{
LogHelper.WriteLog(ex, "开机启动Delete异常");
return false;
}
}
/// <summary>
///是否开机启动
/// </summary>
/// <param name="directory">The directory.</param>
/// <param name="shortcutName">Name of the shortcut.</param>
/// <returns>
/// <c>true</c> if the specified directory is exist; otherwise, <c>false</c>.
/// </returns>
public static bool IsExist(string directory, string shortcutName)
{
string shortcutPath = Path.Combine(directory, $"{shortcutName}.lnk");
if (File.Exists(shortcutPath))
{
return true;
}
else
{
return false;
}
}
} 使用方式:
1、判断是否已经开启了开机启动 bool iSstartUp = StartHelper.IsExist(StartHelper.Startup, StartHelper.AppName);//true false 2、开启开机启动 bool ret=StartHelper.Create(StartHelper.Startup, StartHelper.AppName, StartHelper.AppFile);//true false 3、关闭开机启动 bool ret=StartHelper.Delete(StartHelper.Startup, StartHelper.AppName);//true false
注意:
方法入参本可以由外部传入,此处为了方便,直接内置了,按需改动。
川公网安备 51010702003150号
留下您的脚步
最近评论