csharp-自动运行

需要添加下面的引用

project-add reference-com -windows script Host Object Model

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;
}

private void chk_autoStart_Click(object sender, RoutedEventArgs e)
{
if (App.db.m_config[0].AutoStart)
{
ShortcutProc(true, "SPCAssist", App.appPath + "/ScanAssist.exe", "PLC导出工具");
}
else
{
ShortcutProc(false, "SPCAssist", App.appPath + "/ScanAssist.exe", "PLC导出工具");
}
App.db.Update_model<ModelConfig>(App.db.m_config[0]);
}