Ejemplo n.º 1
0
        private void Application_Startup(object sender, StartupEventArgs e)
        {
            var config = Settings.LoadSettings();

            Localization.SetLanguage(config.Language);
            Resources.Remove("AsyncImagesEnabled");
            Resources.Add("AsyncImagesEnabled", config.AsyncImageLoading);
            Settings.ConfigureLogger();
            Settings.ConfigureCef();

#if !DEBUG
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
#endif

            if (Mutex.TryOpenExisting(instanceMuxet, out var mutex))
            {
                var client = new PipeClient(Settings.GetAppConfigValue("PipeEndpoint"));

                if (e.Args.Count() > 0 && e.Args.Contains("-command"))
                {
                    var commandArgs = e.Args[1].Split(new char[] { ':' });
                    var command     = commandArgs[0];
                    var args        = commandArgs.Count() > 1 ? commandArgs[1] : string.Empty;
                    client.InvokeCommand(command, args);
                }
                else
                {
                    client.InvokeCommand(CmdlineCommands.Focus, string.Empty);
                }

                logger.Info("Application already running, shutting down.");
                Shutdown();
                return;
            }
            else
            {
                appMutex = new Mutex(true, instanceMuxet);
            }


            LoadThirdPartyTools();
            var mainWindow = new MainWindow();
            Current.MainWindow = MainWindow;
            mainWindow.Show();

            logger.Info("Application started");
        }