Пример #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            string str = textBox1.Text.Trim();

            string[] arr = str.Split('\n');
            #region 检查输入
            for (int i = 0; i < arr.Length; i++)
            {
                SortedDictionary <string, string> hosts = new SortedDictionary <string, string>();
                string[] quickLines = arr[i].Split(';');
                foreach (string line in quickLines)
                {
                    Match match = HostsDal.RegItem.Match(line);
                    if (!match.Success)
                    {
                        MessageBox.Show(string.Format("第{1}行的配置 {0} 不符合要求(注释不能有分号哦)", line, i + 1));
                        return;
                    }
                    string ip   = match.Result("$1");
                    string name = match.Result("$2");
                    if (hosts.ContainsKey(name.ToLower()))
                    {
                        MessageBox.Show(string.Format("第{1}行的域名 {0} 重复定义", name, i + 1));
                        return;
                    }
                    hosts.Add(name.ToLower(), ip);
                }
            }
            #endregion

            HostsDal.SaveQuickLines(str);
            btnCanel_Click(null, null);
        }
Пример #2
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            int messageShowSecond;

            if (!int.TryParse(txtSecond.Text, out messageShowSecond))
            {
                MessageBox.Show("你输入的整数是错误的");
                return;
            }
            Regex reg = new Regex(@"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$", RegexOptions.Compiled);

            if (!reg.IsMatch(txtTelecomDns.Text))
            {
                MessageBox.Show("你输入的电信DNS IP格式不对");
                return;
            }
            if (!reg.IsMatch(txtUnicomDns.Text))
            {
                MessageBox.Show("你输入的网通DNS IP格式不对");
                return;
            }
            string encode          = radUTF8.Checked ? "UTF-8" : "GB2312";
            string linkQuickUse    = radNoQuick.Checked ? "0" : "1";
            string addMicroComment = radNoComment.Checked ? "0" : "1";
            string saveComment     = radDelComment.Checked ? "0" : "1";
            string saveToSysDir    = radSysDir.Checked ? "1" : "0";
            string isFront         = radFront.Checked ? "1" : "0";

            HostsDal.SaveConfig(encode, linkQuickUse, addMicroComment, saveComment, saveToSysDir,
                                messageShowSecond, isFront, txtTelecomDns.Text, txtUnicomDns.Text);
            this.Close();
        }
Пример #3
0
        public QuickLineForm()
        {
            InitializeComponent();
            ShowInTaskbar = false;// 不能放到OnLoad里,会导致窗体消失

            label1.Text += @"
每行记录可以包含多个配置,以;分隔(注意注释不能有分号),例如:
192.168.1.123 beinet.cn;192.168.2.234 www.beinet.cn
多行之间以物理换行分隔,自然换行不算新行

快速切换与快捷行的区别:
  快速切换类似于备份,是清除当前hosts的全部内容,用快速切换文件里的内容替换
  快捷行则只是把行里的内容追加到当前hosts的内容最后,并不修改当前hosts的旧内容";

            textBox1.Text = HostsDal.GetQuickLines();
        }