コード例 #1
0
        public void RunAsAdmin()
        {
            try
            {
                MDnsSvrWorker.Dispose();
                ProcessStartInfo startInfo = new ProcessStartInfo
                {
                    FileName = GetType().Assembly.Location,
                    Verb     = "runas"
                };

                Process.Start(startInfo);
                Environment.Exit(Environment.ExitCode);
            }
            catch (Exception exception)
            {
                MyTools.BackgroundLog(exception.ToString());
            }
        }
コード例 #2
0
        public void RunAsAdmin()
        {
            try
            {
                MDnsServer.Stop();
                ProcessStartInfo startInfo = new ProcessStartInfo
                {
                    FileName = Process.GetCurrentProcess().MainModule.FileName,
                    Verb     = "runas"
                };

                Process.Start(startInfo);
                Environment.Exit(Environment.ExitCode);
            }
            catch (Exception exception)
            {
                MyTools.BackgroundLog(exception.ToString());
            }
        }
コード例 #3
0
        private void RunAsAdmin_OnActionClick(object sender, RoutedEventArgs e)
        {
            try
            {
                MDnsSvrWorker.Dispose();
                ProcessStartInfo startInfo = new ProcessStartInfo
                {
                    FileName = GetType().Assembly.Location,
                    Verb     = "runas"
                };

                Process.Start(startInfo);
                Environment.Exit(Environment.ExitCode);
            }
            catch (Exception exception)
            {
                MyTools.BackgroundLog(exception.ToString());
            }
        }
コード例 #4
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            var bgWorker = new BackgroundWorker();

            bgWorker.DoWork += (o, args) =>
            {
                try
                {
                    ListStrings = new WebClient().DownloadString(TypeDNS ? UrlSettings.MDnsList : UrlSettings.MDohList)
                                  .Split('\n').ToList();
                }
                catch (Exception exception)
                {
                    MyTools.BackgroundLog(@"| Download String failed : " + exception);
                }

                if (string.IsNullOrWhiteSpace(ListStrings[ListStrings.Count - 1]))
                {
                    ListStrings.RemoveAt(ListStrings.Count - 1);
                }
            };
            bgWorker.RunWorkerCompleted += (o, args) =>
            {
                try
                {
                    if (File.Exists($"{MainWindow.SetupBasePath}dns.list") && TypeDNS)
                    {
                        foreach (var item in File.ReadAllLines($"{MainWindow.SetupBasePath}dns.list"))
                        {
                            ListStrings.Add(item);
                        }
                    }
                    else if (File.Exists($"{MainWindow.SetupBasePath}doh.list") && !TypeDNS)
                    {
                        foreach (var item in File.ReadAllLines($"{MainWindow.SetupBasePath}doh.list"))
                        {
                            ListStrings.Add(item);
                        }
                    }

                    if (ListStrings != null && ListStrings.Count != 0)
                    {
                        foreach (var item in ListStrings)
                        {
                            SpeedListView.Items.Add(new SpeedList
                            {
                                Server = TypeDNS ? item.Split('*', ',')[0].Trim() : new Uri(item.Split('*', ',')[0].Trim()).Host,
                                Name   = item.Contains('*') || item.Contains(',') ? item.Split('*', ',')[1].Trim() : ""
                            });
                        }
                    }

                    StratButton.IsEnabled = true;
                    ProgressBar.Maximum   = SpeedListView.Items.Count;
                    Grid.Effect           = null;
                }
                catch (Exception exception)
                {
                    MyTools.BackgroundLog(@"| Read String failed : " + exception);
                }
            };
            bgWorker.RunWorkerAsync();
        }
コード例 #5
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            var bgWorker = new BackgroundWorker();

            bgWorker.DoWork += (o, args) =>
            {
                try
                {
                    ListStrings = new WebClient().DownloadString(TypeDNS ? UrlSettings.MDnsList : UrlSettings.MDohList)
                                  .Split('\n').ToList();
                    if (string.IsNullOrWhiteSpace(ListStrings[ListStrings.Count - 1]))
                    {
                        ListStrings.RemoveAt(ListStrings.Count - 1);
                    }
                    args.Result = true;
                }
                catch (Exception exception)
                {
                    MyTools.BackgroundLog(@"| Download String failed : " + exception);
                    args.Result = false;
                }
            };
            bgWorker.RunWorkerCompleted += (o, args) =>
            {
                if (!(bool)args.Result)
                {
                    Grid.Effect       = null;
                    Snackbar.IsActive = true;
                    Snackbar.Message  = new SnackbarMessage()
                    {
                        Content = "获取列表内容失败,请检查互联网连接。"
                    };
                    return;
                }

                try
                {
                    if (File.Exists($"{MainWindow.SetupBasePath}dns.list") && TypeDNS)
                    {
                        foreach (var item in File.ReadAllLines($"{MainWindow.SetupBasePath}dns.list"))
                        {
                            ListStrings.Add(item);
                        }
                    }
                    else if (File.Exists($"{MainWindow.SetupBasePath}doh.list") && !TypeDNS)
                    {
                        foreach (var item in File.ReadAllLines($"{MainWindow.SetupBasePath}doh.list"))
                        {
                            ListStrings.Add(item);
                        }
                    }

                    if (ListStrings != null && ListStrings.Count != 0)
                    {
                        foreach (var item in ListStrings)
                        {
                            SpeedListView.Items.Add(new SpeedList
                            {
                                Server = TypeDNS ? item.Split('*', ',')[0].Trim() : new Uri(item.Split('*', ',')[0].Trim()).Host,
                                Name   = item.Contains('*') || item.Contains(',') ? item.Split('*', ',')[1].Trim() : ""
                            });
                        }
                    }

                    StratButton.IsEnabled = true;
                    ProgressBar.Maximum   = SpeedListView.Items.Count;
                    Grid.Effect           = null;
                }
                catch (Exception exception)
                {
                    MyTools.BackgroundLog(@"| Read String failed : " + exception);
                    MessageBox.Show($"Error: 尝试载入列表失败{Environment.NewLine}Original error: {exception}");
                }
            };
            bgWorker.RunWorkerAsync();
        }
コード例 #6
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            List <string> dohListStrings = null, dnsListStrings = null;
            var           bgWorker = new BackgroundWorker();

            bgWorker.DoWork += (o, args) =>
            {
                try
                {
                    dohListStrings = new WebClient()
                                     .DownloadString(UrlSettings.MDohList).Split('\n').ToList();
                    dnsListStrings = new WebClient()
                                     .DownloadString(UrlSettings.MDnsList).Split('\n').ToList();

                    if (string.IsNullOrWhiteSpace(dohListStrings[dohListStrings.Count - 1]))
                    {
                        dohListStrings.RemoveAt(dohListStrings.Count - 1);
                    }
                    if (string.IsNullOrWhiteSpace(dnsListStrings[dnsListStrings.Count - 1]))
                    {
                        dnsListStrings.RemoveAt(dnsListStrings.Count - 1);
                    }
                }
                catch (Exception exception)
                {
                    MyTools.BackgroundLog(@"| Download list failed : " + exception);
                }
            };
            bgWorker.RunWorkerCompleted += (o, args) =>
            {
                try
                {
                    if (dohListStrings != null && dohListStrings.Count != 0)
                    {
                        DoHUrlText.Items.Clear();
                        foreach (var item in dohListStrings)
                        {
                            DoHUrlText.Items.Add(item.Split('*', ',')[0].Trim());
                            SecondDoHUrlText.Items.Add(item.Split('*', ',')[0].Trim());
                        }
                    }

                    if (dnsListStrings != null && dnsListStrings.Count != 0)
                    {
                        SecondDNS.Items.Clear();
                        foreach (var item in dnsListStrings)
                        {
                            SecondDNS.Items.Add(item.Split('*', ',')[0].Trim());
                        }
                    }

                    if (dohListStrings == null && dnsListStrings == null)
                    {
                        Snackbar.MessageQueue.Enqueue(new TextBlock()
                        {
                            Text = @"获取列表内容失败,请检查互联网连接。"
                        });
                    }

                    if (File.Exists($"{MainWindow.SetupBasePath}doh.list"))
                    {
                        foreach (var item in File.ReadAllLines($"{MainWindow.SetupBasePath}doh.list"))
                        {
                            DoHUrlText.Items.Add(item.Split('*', ',')[0].Trim());
                            SecondDoHUrlText.Items.Add(item.Split('*', ',')[0].Trim());
                        }
                    }

                    if (File.Exists($"{MainWindow.SetupBasePath}dns.list"))
                    {
                        foreach (var item in File.ReadAllLines($"{MainWindow.SetupBasePath}dns.list"))
                        {
                            SecondDNS.Items.Add(item.Split('*', ',')[0].Trim());
                        }
                    }
                }
                catch (Exception exception)
                {
                    MyTools.BackgroundLog(@"| Read list failed : " + exception);
                }

                DoHUrlText.Text = DnsSettings.HttpsDnsUrl;
                SecondDNS.Text  = DnsSettings.SecondDnsIp.ToString();
            };
            bgWorker.RunWorkerAsync();
        }
コード例 #7
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            List <string> dohListStrings = null, dnsListStrings = null;
            var           bgWorker = new BackgroundWorker();

            bgWorker.DoWork += (o, args) =>
            {
                try
                {
                    dohListStrings = new WebClient()
                                     .DownloadString(UrlSettings.MDohList).Split('\n').ToList();
                    dnsListStrings = new WebClient()
                                     .DownloadString(UrlSettings.MDnsList).Split('\n').ToList();
                }
                catch (Exception exception)
                {
                    MyTools.BackgroundLog(@"| Download list failed : " + exception);
                }

                if (string.IsNullOrWhiteSpace(dohListStrings[dohListStrings.Count - 1]))
                {
                    dohListStrings.RemoveAt(dohListStrings.Count - 1);
                }
                if (string.IsNullOrWhiteSpace(dnsListStrings[dnsListStrings.Count - 1]))
                {
                    dnsListStrings.RemoveAt(dnsListStrings.Count - 1);
                }
            };
            bgWorker.RunWorkerCompleted += (o, args) =>
            {
                if (UrlSettings.MDohList.Contains(".list"))
                {
                    foreach (var item in dohListStrings)
                    {
                        DoHUrlText.Items.Add(item.Split('*', ',')[0].Trim());
                        SecondDoHUrlText.Items.Add(item.Split('*', ',')[0].Trim());
                    }
                }
                if (UrlSettings.MDnsList.Contains(".list"))
                {
                    foreach (var item in dnsListStrings)
                    {
                        SecondDNS.Items.Add(item.Split('*', ',')[0].Trim());
                    }
                }

                if (File.Exists($"{MainWindow.SetupBasePath}doh.list"))
                {
                    foreach (var item in File.ReadAllLines($"{MainWindow.SetupBasePath}doh.list"))
                    {
                        DoHUrlText.Items.Add(item.Split('*', ',')[0].Trim());
                        SecondDoHUrlText.Items.Add(item.Split('*', ',')[0].Trim());
                    }
                }

                if (File.Exists($"{MainWindow.SetupBasePath}dns.list"))
                {
                    foreach (var item in File.ReadAllLines($"{MainWindow.SetupBasePath}dns.list"))
                    {
                        SecondDNS.Items.Add(item.Split('*', ',')[0].Trim());
                    }
                }
            };
            bgWorker.RunWorkerAsync();
        }