static void Main(string[] args) { SettingsManager.Initialize(); SettingsManager = new SettingsManager(); LoadSettings(); SettingsManager.ForcePropertyUpdate(); bool firstRun = false, startup = false; foreach (var arg in args) { if (arg == "--startup") { if (!SettingsManager.RunOnStartup) { return; } startup = true; } if (arg == "--firstrun") { firstRun = true; } } if (SettingsManager.CheckForUpdates) { CheckForUpdates(); } // Note to people reading this source code: analytics is opt-in and no data is sent by calling this method unless users have done so Analytics.TrackFeatureUse("Application startup"); const int minutesBetweenIdleUpdate = 5; var timer = new System.Threading.Timer(o => Analytics.TrackFeatureUse("Idling"), null, minutesBetweenIdleUpdate * 60 * 1000, minutesBetweenIdleUpdate * 60 * 1000); _hookID = SetHook(_proc); NotifyIcon = new NotifyIcon(); NotifyIcon.Icon = Icon.ExtractAssociatedIcon(Assembly.GetEntryAssembly().Location); NotifyIcon.Visible = true; NotifyIcon.Text = "Click here to upload files to MediaCrush"; var menu = new ContextMenu(); UpdateMenuItem = new MenuItem("Update to "); UpdateMenuItem.Visible = false; var settings = new MenuItem("Settings"); var source = new MenuItem("Source Code"); var exit = new MenuItem("Exit"); menu.MenuItems.Add(UpdateMenuItem); //menu.MenuItems.Add(settings); menu.MenuItems.Add(source); menu.MenuItems.Add(exit); UpdateMenuItem.Click += (s, e) => UpdateToVersion((Version)UpdateMenuItem.Tag, UpdateUrl); source.Click += (s, e) => Process.Start("https://github.com/MediaCrush/MediaCrush-Windows"); exit.Click += (s, e) => { Analytics.TrackFeatureUse("Manual shutdown"); Application.Exit(); }; settings.Click += settings_Click; NotifyIcon.ContextMenu = menu; NotifyIcon.Click += icon_Click; UploadWindow = new UploadWindow(); UploadWindow.Show(); if (startup) { UploadWindow.Visibility = System.Windows.Visibility.Hidden; } Application.ApplicationExit += (s, e) => NotifyIcon.Dispose(); Application.Run(); UnhookWindowsHookEx(_hookID); }
static void Main(string[] args) { SettingsManager.Initialize(); SettingsManager = new SettingsManager(); LoadSettings(); SettingsManager.ForcePropertyUpdate(); bool firstRun = false, startup = false; foreach (var arg in args) { if (arg == "--startup") { if (!SettingsManager.RunOnStartup) return; startup = true; } if (arg == "--firstrun") firstRun = true; } if (SettingsManager.CheckForUpdates) CheckForUpdates(); // Note to people reading this source code: analytics is opt-in and no data is sent by calling this method unless users have done so Analytics.TrackFeatureUse("Application startup"); const int minutesBetweenIdleUpdate = 5; var timer = new System.Threading.Timer(o => Analytics.TrackFeatureUse("Idling"), null, minutesBetweenIdleUpdate * 60 * 1000, minutesBetweenIdleUpdate * 60 * 1000); _hookID = SetHook(_proc); NotifyIcon = new NotifyIcon(); NotifyIcon.Icon = Icon.ExtractAssociatedIcon(Assembly.GetEntryAssembly().Location); NotifyIcon.Visible = true; NotifyIcon.Text = "Click here to upload files to MediaCrush"; var menu = new ContextMenu(); UpdateMenuItem = new MenuItem("Update to "); UpdateMenuItem.Visible = false; var settings = new MenuItem("Settings"); var source = new MenuItem("Source Code"); var exit = new MenuItem("Exit"); menu.MenuItems.Add(UpdateMenuItem); //menu.MenuItems.Add(settings); menu.MenuItems.Add(source); menu.MenuItems.Add(exit); UpdateMenuItem.Click += (s, e) => UpdateToVersion((Version)UpdateMenuItem.Tag, UpdateUrl); source.Click += (s, e) => Process.Start("https://github.com/MediaCrush/MediaCrush-Windows"); exit.Click += (s, e) => { Analytics.TrackFeatureUse("Manual shutdown"); Application.Exit(); }; settings.Click += settings_Click; NotifyIcon.ContextMenu = menu; NotifyIcon.Click += icon_Click; UploadWindow = new UploadWindow(); UploadWindow.Show(); if (startup) UploadWindow.Visibility = System.Windows.Visibility.Hidden; Application.ApplicationExit += (s, e) => NotifyIcon.Dispose(); Application.Run(); UnhookWindowsHookEx(_hookID); }