Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }