/// <summary>
        /// Reads the settings from file and tries to apply them without raising an exception.
        /// </summary>
        public static bool TryApplySettings()
        {
            if (!File.Exists(GlobalSettings.SettingsFileName))
            {
                LogWriter.Write("Settings file not found");
                return(false);
            }

            try
            {
                LogWriter.Write("Trying to apply app [settings]");
                var data = GlobalSettings.Deserialize();
                if (data.MouseMoveDeadZone >= Interceptor.Interception.MouseMoveDeadZoneMin &&
                    data.MouseMoveDeadZone <= Interceptor.Interception.MouseMoveDeadZoneMax)
                {
                    GlobalSettings.Instance.MouseMoveDeadZone = data.MouseMoveDeadZone;
                    LogWriter.Write("[settings] 'Mouse move dead zone' set to: " + data.MouseMoveDeadZone);
                }
                else
                {
                    LogWriter.Write(
                        string.Format(
                            "[settings] Ignored 'Mouse move dead zone', because the value '{0}' is out of range! You must use values in range {1}-{2}",
                            data.MouseMoveDeadZone,
                            Interceptor.Interception.MouseMoveDeadZoneMin,
                            Interceptor.Interception.MouseMoveDeadZoneMax));
                }

                GlobalSettings.Instance.DisplayEmulationInformation = data.DisplayEmulationInformation;
                LogWriter.Write("[settings] 'Display emulation information' set to: " + data.DisplayEmulationInformation);
                GlobalSettings.Instance.SuggestInputDevicesForNewSlots = data.SuggestInputDevicesForNewSlots;
                LogWriter.Write("[settings] 'Suggest input devices for new slots' set to: " + data.SuggestInputDevicesForNewSlots);
                if (data.StartingVirtualControllerUserIndex >= 1 && data.StartingVirtualControllerUserIndex <= 4)
                {
                    GlobalSettings.Instance.StartingVirtualControllerUserIndex = data.StartingVirtualControllerUserIndex;
                    LogWriter.Write("[settings] 'Starting virtual controller user index' set to: " + data.StartingVirtualControllerUserIndex);
                }
                else
                {
                    LogWriter.Write(
                        string.Format(
                            "[settings] Ignored 'Starting virtual controller user index', because the value '{0}' is out of range! You must use values in range 1-4",
                            data.StartingVirtualControllerUserIndex));
                }

                return(true);
            }
            catch (Exception e)
            {
                LogWriter.Write(string.Format("Failed to apply settings from {0}:", GlobalSettings.SettingsFileName));
                LogWriter.Write(e.ToString());
            }

            return(false);
        }