csharp-auto start

if (App.db.m_config[0].AutoStart)
{
ShortcutProc(true, "SPCAssist", ((SPCAssist.MainWindow)Application.Current.MainWindow).appPath + "/SPCAssist.exe", "SPC 自动切换任务工具");
}else
{
ShortcutProc(false, "SPCAssist", ((SPCAssist.MainWindow)Application.Current.MainWindow).appPath + "/SPCAssist.exe", "SPC 自动切换任务工具");
}

public static bool ShortcutProc(bool isEnable, string shortcutName, string targetPath,string description = null)
{
try
{
// 获取全局 开始 文件夹位置
string start_folder = Environment.GetFolderPath(Environment.SpecialFolder.CommonStartup);
// 获取当前登录用户的 开始 文件夹位置
//Environment.GetFolderPath(Environment.SpecialFolder.Startup);

//添加引用 Com 中搜索 Windows Script Host Object Model
string shortcutPath = System.IO.Path.Combine(start_folder, string.Format("{0}.lnk", shortcutName));
if (isEnable)
{
IWshRuntimeLibrary.WshShell shell = new IWshRuntimeLibrary.WshShell();
IWshRuntimeLibrary.IWshShortcut shortcut = (IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut(shortcutPath);//创建快捷方式对象
shortcut.TargetPath = targetPath;//指定目标路径
shortcut.WorkingDirectory = System.IO.Path.GetDirectoryName(targetPath);//设置起始位置
shortcut.WindowStyle = 1;//设置运行方式,默认为常规窗口
shortcut.Description = description;//设置备注
shortcut.IconLocation = targetPath;//设置图标路径
shortcut.Save();//保存快捷方式

}else
{
try
{
System.IO.File.Delete(shortcutPath);
}
catch (System.IO.IOException e)
{
Console.WriteLine(e.Message);
Log.Error($"delete shortcut failed. msg={e.Message}");
return false;
}
}

return true;
}
catch(Exception e)
{
Log.Error($"operate shortcut failed. msg={e.Message}");
}
return false;
}