using Entries; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; using NativeHelpers; using System.Runtime.InteropServices; namespace ShortcutUtil { public class HelperLocation { public string Location; public bool Valid { get { return File.Exists(Location); } } public HelperLocation(string fileName) { Location = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, fileName); if (Valid) return; Location = Path.Combine(Environment.CurrentDirectory, fileName); } } static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { AppResolver appResolver = new AppResolver(); string[] args = Environment.GetCommandLineArgs(); if (args.Length < 2) { MessageBox.Show("Drag a shortcuts.json onto this executable"); return; } EntryList entryList = null; try { entryList = EntryList.FromFile(args[1]); } catch (Exception e) { MessageBox.Show("Couldn't load settings file " + args[1] + "\n" + e); return; } if (entryList.Entries.Count == 0) { MessageBox.Show("No shorcuts in that settings file!"); return; } Environment.CurrentDirectory = Path.GetDirectoryName(Path.GetFullPath(args[1])); HelperLocation location = new HelperLocation("JumpListUtil.exe"); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm(entryList, appResolver, location)); } } }