public void Load()
		{
			_checkTimer.Interval = AppManager.Instance.Settings.Config.CheckProcessesInterval;

			_processConfiguration.Clear();

			var r = new Regex(@"<Application[\s]*(?<" + TagType + ">.*?)>(?<" + TagName + ">.*?)</Application>",
				RegexOptions.IgnoreCase | RegexOptions.Multiline);

			foreach (Match match in r.Matches(
				File.ReadAllText(ResourceManager.Instance.WatchedProcessesFile.LocalPath, Encoding.Default)))
			{
				var name = match.Groups[TagName].Value;
				var processConfiguration = new ExternalProcessConfiguration();
				processConfiguration.Name = name.ToLower();
				var type = match.Groups[TagType].Value.ToLower();

				if (!String.IsNullOrEmpty(type))
				{
					if (type.StartsWith(TagType + "="))
					{
						switch (type.Split(new[] { '=' }, 2)[1].Replace("\"", ""))
						{
							case "1":
							case "active":
								processConfiguration.Behaviour = ExternalProcessBehaviour.HideIfIsActive;
								break;

							case "2":
							case "maximized":
								processConfiguration.Behaviour = ExternalProcessBehaviour.HideIfIsActiveAndMaximized;
								break;

							case "3":
							case "notontop":
								processConfiguration.Behaviour = ExternalProcessBehaviour.SetNotOnTopIfIsActive;
								break;

							case "4":
							case "running":
								processConfiguration.Behaviour = ExternalProcessBehaviour.HideIfProcessIsRunning;
								break;

							case "5":
							case "titlebar":
								processConfiguration.Behaviour = ExternalProcessBehaviour.HideIfTitlebarMatches;
								processConfiguration.Name = name; // Fix case
								break;
						}
					}
				}
				_processConfiguration.Add(processConfiguration);
			}
		}
Exemple #2
0
        public void Load()
        {
            _checkTimer.Interval = AppManager.Instance.Settings.Config.CheckProcessesInterval;

            _processConfiguration.Clear();

            var r = new Regex(@"<Application[\s]*(?<" + TagType + ">.*?)>(?<" + TagName + ">.*?)</Application>",
                              RegexOptions.IgnoreCase | RegexOptions.Multiline);

            foreach (Match match in r.Matches(
                         File.ReadAllText(ResourceManager.Instance.WatchedProcessesFile.LocalPath, Encoding.Default)))
            {
                var name = match.Groups[TagName].Value;
                var processConfiguration = new ExternalProcessConfiguration();
                processConfiguration.Name = name.ToLower();
                var type = match.Groups[TagType].Value.ToLower();

                if (!String.IsNullOrEmpty(type))
                {
                    if (type.StartsWith(TagType + "="))
                    {
                        switch (type.Split(new[] { '=' }, 2)[1].Replace("\"", ""))
                        {
                        case "1":
                        case "active":
                            processConfiguration.Behaviour = ExternalProcessBehaviour.HideIfIsActive;
                            break;

                        case "2":
                        case "maximized":
                            processConfiguration.Behaviour = ExternalProcessBehaviour.HideIfIsActiveAndMaximized;
                            break;

                        case "3":
                        case "notontop":
                            processConfiguration.Behaviour = ExternalProcessBehaviour.SetNotOnTopIfIsActive;
                            break;

                        case "4":
                        case "running":
                            processConfiguration.Behaviour = ExternalProcessBehaviour.HideIfProcessIsRunning;
                            break;

                        case "5":
                        case "titlebar":
                            processConfiguration.Behaviour = ExternalProcessBehaviour.HideIfTitlebarMatches;
                            processConfiguration.Name      = name;                                // Fix case
                            break;
                        }
                    }
                }
                _processConfiguration.Add(processConfiguration);
            }
        }