private static bool Context_CreateContextMenu(TrayIconApplicationContext context) { context.AddToolStripMenuItem("&Configure " + Globals.AssemblyTitle, Context_Configure, Properties.Resources.settings64); context.AddToolStripSeparator(); context.AddToolStripMenuItem("E&xit " + Globals.AssemblyTitle, (sender, e) => { context.ExitThread(); }, Properties.Resources.close64); return(true); }
static void Main() { try { if (!SingleInstance.Start()) { return; } Directory.CreateDirectory(Globals.WritableDirectoryBase); Directory.CreateDirectory(Globals.WritableDirectoryBase + "Logs/"); Globals.OverrideErrorFilePath(() => Globals.WritableDirectoryBase + "Logs/" + Globals.AssemblyName + "_" + DateTime.Now.Year + "_" + DateTime.Now.Month + ".txt"); Environment.CurrentDirectory = Globals.WritableDirectoryBase; Logger.CatchAll(); settings = new Settings(); settings.Load(); if (settings.inputsRequiredToWake < 1) { settings.inputsRequiredToWake = settings.preventAccidentalWakeup ? 8 : 1; } settings.SaveIfNoExist(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); try { MainForm.MigrateLegacyAutostart(); } catch (Exception) { } service = new MonitorControlService(); service.Start(); // Optionally, one could add the icon to Project > Properties > Resources.resx and access it via Properties.Resources.simple_monitor_icon. ComponentResourceManager resources = new ComponentResourceManager(typeof(MainForm)); Icon icon = (Icon)resources.GetObject("$this.Icon"); context = new TrayIconApplicationContext(icon, Globals.AssemblyTitle + " " + Globals.AssemblyVersion, Context_CreateContextMenu, Context_DoubleClick); Application.Run(context); } finally { SingleInstance.Stop(); service?.Stop(); context?.Dispose(); } }