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