Exemple #1
0
 public void AddSite(SiteItem siteItem, int idx)
 {
     try
     {
         //Range* というキーに、プロトコルを示す値と、:Range 値を書き込む
         var subKey = Registry.CurrentUser.CreateSubKey(string.Format(_rangesKey + @"\Range{0}", idx));
         subKey.SetValue(siteItem.Protocol, 2, RegistryValueKind.DWord);
         subKey.SetValue(_rangeValue, siteItem.Range, RegistryValueKind.String);
     }
     catch (Exception e)
     {
         throw e;
     }
 }
Exemple #2
0
        public List <SiteItem> GetSites()
        {
            try
            {
                var results = new List <SiteItem>();

                //レジストリから、既に登録されているRange(IP)を取得
                RegistryKey regKey = Registry.CurrentUser.OpenSubKey(_rangesKey, false);
                foreach (var keyName in regKey.GetSubKeyNames())
                {
                    var siteItem = new SiteItem();
                    var keyPath  = string.Format(_rangesKey + @"\{0}", keyName);
                    var subKey   = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(keyPath, false);

                    foreach (var valName in subKey.GetValueNames())
                    {
                        switch (valName)
                        {
                        case "*":
                            siteItem.Protocol = "*";
                            break;

                        case "http":
                            siteItem.Protocol = "http";
                            break;

                        case "https":
                            siteItem.Protocol = "https";
                            break;

                        case _rangeValue:
                            siteItem.Range = subKey.GetValue(valName).ToString();
                            break;
                        }
                    }
                    results.Add(siteItem);
                }
                return(results);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Exemple #3
0
 public SiteItem ConvertFromString(string source)
 {
     try
     {
         if (!Regex.IsMatch(source, @"^(http|https|\*)\:\/\/([0-9]{1,3}|\*)\.([0-9]{1,3}|\*)\.([0-9]{1,3}|\*)\.([0-9]{1,3}|\*)$"))
         {
             //書式不正
             return(null);
         }
         var items  = source.Split(new string[] { ":", "/", "/" }, StringSplitOptions.RemoveEmptyEntries);
         var result = new SiteItem();
         result.SourceText = source;
         result.Protocol   = items[0];
         result.Range      = items[1];
         return(result);
     }
     catch (Exception e)
     {
         throw e;
     }
 }