Beispiel #1
0
        /// <summary>
        /// Проверяет статус сети и выводит информацию о ней
        /// </summary>
        /// <param name="X">Позиция X для курсора консоли</param>
        /// <param name="Y">Позиция Y для курсора консоли</param>
        static void CheckWiFi(int X, int Y)
        {
            while (true)
            {
                var check = new CMDWiFi();
                check.UpdateInfo();

                Console.SetCursorPosition(X, Y);
                Console.Write($"Название сети: {check.ReceivedWiFiName}   ");
                Console.SetCursorPosition(X, Y + 1);
                Console.Write($"Статус сети: {check.WiFiStatus}   ");

                List <string> OutMACList = new List <string>();
                if (MACexecute)
                {
                    OutMACList = new MACcomparsion().MatchingMAC(check.ListMAC, MAC);
                }
                else
                {
                    OutMACList = check.ListMAC;
                }
                Console.SetCursorPosition(X, Y + 2);
                Console.Write($"Список подключеных пользователей:");
                for (int i = 4; i < OutMACList.Count + 4; i++)
                {
                    Console.SetCursorPosition(X, Y + i);
                    Console.Write(OutMACList[i - 4] + "   ");
                }

                Console.SetCursorPosition(0, 15);
                Thread.Sleep(5000);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Выводит общий результат CMDPing
        /// </summary>
        private void ResultOfUI()
        {
            Thread.Sleep(1000);
            while (true)
            {
                if (PingExecute)
                {
                    //Вывод состояния каждого адреса
                    this.Dispatcher.BeginInvoke(new Action(() =>
                    {
                        W_Yand.Content = ($"{YandP.Losses} / {YandP.AvgPing}");
                        W_Goog.Content = ($"{GoogdP.Losses} / {GoogdP.AvgPing}");
                        W_2ip.Content  = ($"{ip2P.Losses} / {ip2P.AvgPing}");
                        W_Ufan.Content = ($"{UfanP.Losses} / {UfanP.AvgPing}");
                    }));

                    //Задание данных для статуса
                    bool Y = YandP.Losses == "100%";
                    bool G = GoogdP.Losses == "100%";
                    bool I = ip2P.Losses == "100%";
                    bool U = UfanP.Losses == "100%";

                    //Вывод статуса
                    if (Y && G && I && U)
                    {
                        //Если все недоступно
                        this.Dispatcher.BeginInvoke(new Action(() =>
                        {
                            W_PingStatus.Header = "Проблемы с кабелем";
                        }));
                    }
                    else if (!Y && !G && !I && !U)
                    {
                        //Если доступно все
                        this.Dispatcher.BeginInvoke(new Action(() =>
                        {
                            W_PingStatus.Header = "Полный интернет доступ";
                        }));
                    }
                    else if (!U && (!Y || !G || !I))
                    {
                        //Если доступен только UfanP и что нибудь другое
                        this.Dispatcher.BeginInvoke(new Action(() =>
                        {
                            W_PingStatus.Header = "Требуется подключение";
                        }));
                    }
                    else if (Y && G && I && !U)
                    {
                        //Если доступен только UfanP
                        this.Dispatcher.BeginInvoke(new Action(() =>
                        {
                            W_PingStatus.Header = "Требуется оплата";
                        }));
                    }
                    else
                    {
                        //Неизвестно...
                        this.Dispatcher.BeginInvoke(new Action(() =>
                        {
                            W_PingStatus.Header = "Неизвестно";
                        }));
                    };
                }

                if (WiFiExecute)
                {
                    this.Dispatcher.BeginInvoke(new Action(() =>
                    {
                        W_WiFiMacList.Children.Clear();

                        if (WiFiRestart)
                        {
                            W_WiFiStatus.Value     = 3;
                            W_WiFiUserCount.Header = "Подключения к сети";
                        }
                        else
                        {
                            switch (WiFi.WiFiStatus)
                            {
                            case "Запущено":
                                W_WiFiStatus.Value = 4;
                                break;

                            case "Не запущено":
                                W_WiFiStatus.Value = 2;
                                break;

                            default:     //Неизвестно
                                W_WiFiStatus.Value = 1;
                                break;
                            }

                            W_WiFiName.Text     = $"Название: {WiFi.ReceivedWiFiName}";
                            W_WiFiPassword.Text = $"Пароль: {WiFiPassword}";

                            if (WiFi.ListMAC.Count == 0)
                            {
                                W_WiFiUserCount.Header = "Подключения к сети";
                            }
                            else
                            {
                                W_WiFiUserCount.Header = $"Подключения к сети ({WiFi.ListMAC.Count})";
                            }

                            List <string> OutMACList = new List <string>();
                            if (MACexecute)
                            {
                                OutMACList = new MACcomparsion().MatchingMAC(WiFi.ListMAC, MAC);
                            }
                            else
                            {
                                OutMACList = WiFi.ListMAC;
                            }

                            foreach (string mac in OutMACList)
                            {
                                // Create a button.
                                TextBlock ad = new TextBlock()
                                {
                                    Text   = mac,
                                    Margin = new Thickness(4)
                                };
                                // Add created button to a previously created container.
                                W_WiFiMacList.Children.Add(ad);
                            }
                        }
                    }));
                }
                Thread.Sleep(1000);
            }
        }