/// <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); } }
/// <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); } }