/// <summary> /// Получает код страницы /// </summary> /// <returns></returns> public static void GetHTML() { // получаем код страницы try { StringBuilder sb = new StringBuilder(); byte[] buf = new byte[8192]; HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.bing.com"); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream resStream = response.GetResponseStream(); int count = 0; do { count = resStream.Read(buf, 0, buf.Length); if (count != 0) { sb.Append(Encoding.Default.GetString(buf, 0, count)); } }while (count > 0); Vars.HTMLCode = sb.ToString(); } catch (Exception e) { Vars.Debug("Ошибка:\n" + e.Message); } }
/// <summary> /// Метод установки обоев /// </summary> public static void Work() { // проверяем разрешение экрана var size = Screen.PrimaryScreen.Bounds.Size; // исключаем старые маленькие разрешения и неподдерживаемое 5 : 4 if ((size.Width < 1366 && size.Height < 768) || (size.Width == 1280 && size.Height == 1024)) { MessageBox.Show("К сожалению, Ваше разрешение экрана не поддерживается!", "Wallpapers Everyday", MessageBoxButtons.OK, MessageBoxIcon.Stop); Application.Exit(); } // получаем полный путь к файлу Vars.FullExePath = Application.StartupPath.ToString(); // готовимся к записи логов if (Properties.Settings.Default.Debug == true) { Vars.DebugInit(); } // подсчитываем размер папки с обоями Vars.FolderSize = Vars.GetDirectorySize(Vars.FullExePath + "\\images"); // если инета нет if (CheckConnection() == false) { // но стоит галка на постоянном обновлении и нет "только загрузка" if ((Properties.Settings.Default.AlwaysRun) && (!Properties.Settings.Default.OnlyDown)) { // то проверяем, первый ли запуск. и если не первый (т.е. уже есть какой-то скачанный файл) if (Properties.Settings.Default.Name != "no") { if (Properties.Settings.Default.Debug == true) { Vars.Debug("Доступа к Интернету нет. Ставлю последние обои..."); } // то ставим последнюю обоину Vars.OriginalName = Properties.Settings.Default.Name; tray.BalloonTipText = "Отсутствует соединение с интернетом.\nСтавлю последние обои..."; tray.ShowBalloonTip(3000); Thread.Sleep(3000); WallSetter.Set(); tray.BalloonTipText = "Готово."; if (Vars.FolderSize > Properties.Settings.Default.MaxMB) { tray.BalloonTipText += " Размер папки с обоями превышает рекомендуемый!"; } tray.BalloonTipText += "\nЗавершение работы..."; // сохраняем настройки Properties.Settings.Default.Save(); if (!Properties.Settings.Default.NoNotify) { tray.ShowBalloonTip(3000); Thread.Sleep(3000); } tray.Visible = false; return; } else { // если запуск проги не первый tray.BalloonTipText = "Отсутствует соединение с интернетом и нет ни одного файла обоев!\nЗавершение работы..."; tray.ShowBalloonTip(3000); Thread.Sleep(3000); tray.Visible = false; return; } } else { tray.BalloonTipText = "Ошибка! Отсутствует соединение с интернетом!\nЗавершение работы..."; tray.ShowBalloonTip(3000); Thread.Sleep(3000); tray.Visible = false; return; } } // если папки для заставок нет, создаем ее if (!Directory.Exists(Vars.FullExePath + "\\images\\")) { Directory.CreateDirectory(Vars.FullExePath + "\\images"); } // если "только загрузка" - только загружаем tray.BalloonTipText = "Получение кода..."; if (!Properties.Settings.Default.NoNotify) { tray.ShowBalloonTip(3000); } if (Properties.Settings.Default.Debug == true) { Vars.Debug("Получение кода..."); } WallSetter.GetHTML(); if (Properties.Settings.Default.Debug == true) { Vars.Debug("Код получен:"); Vars.Debug(Vars.HTMLCode); } tray.BalloonTipText = "Выделение ссылки..."; if (!Properties.Settings.Default.NoNotify) { tray.ShowBalloonTip(3000); } if (Properties.Settings.Default.Debug == true) { Vars.Debug("Выделяю ссылку..."); } WallSetter.GetUrlAndName(); if (Properties.Settings.Default.Debug == true) { Vars.Debug("Ссылка выделена:"); Vars.Debug(Vars.Url); } tray.BalloonTipText = "Загрузка обоев..."; if (!Properties.Settings.Default.NoNotify) { tray.ShowBalloonTip(3000); } if (Properties.Settings.Default.Debug == true) { Vars.Debug("Скачиваю файл..."); } WallSetter.Download(); // если нет - еще и обои ставим tray.BalloonTipText = "Последний этап..."; if (!Properties.Settings.Default.NoNotify) { tray.ShowBalloonTip(3000); } if (Properties.Settings.Default.OnlyDown == false) { WallSetter.Set(); } if (Properties.Settings.Default.Debug == true) { Vars.Debug("Вес папки с обоями: " + Vars.FolderSize + " Mb\n"); } // сохраняем настройки, т.к. имя последней обоины было изменено Properties.Settings.Default.Save(); if (!Properties.Settings.Default.NoNotify) { tray.BalloonTipText = "Сохранение фонов экрана блокировки..."; tray.ShowBalloonTip(3000); Thread.Sleep(3000); } WallSetter.SaveWin10Interesting(Properties.Settings.Default.Win10IntrestingPath); if (!Properties.Settings.Default.NoNotify) { tray.BalloonTipText = "Готово."; if (Vars.FolderSize >= Properties.Settings.Default.MaxMB) { tray.BalloonTipText += " Размер папки с обоями превышает рекомендуемый!"; } tray.BalloonTipText += "\nЗавершение работы..."; tray.ShowBalloonTip(3000); Thread.Sleep(3000); } }
public static void Download() { // если такая обоина уже есть if (File.Exists(Vars.FullExePath + "\\images\\" + Vars.OriginalName)) { if (Properties.Settings.Default.Debug == true) { Vars.Debug("Новые обои отсутствуют."); } // то уведомляем Start.tray.BalloonTipText = "Новых обоев пока нет. Попробуйте позже."; if (Properties.Settings.Default.AlwaysRun == false) { Start.tray.BalloonTipText += "\nЗавершение работы..."; } Start.tray.ShowBalloonTip(3000); Thread.Sleep(3000); if (Properties.Settings.Default.Debug == true) { Vars.Debug("Новых обоев нет."); } if (Properties.Settings.Default.AlwaysRun == false) { Start.tray.Visible = false; Application.Exit(); } } else // если же нет { // качаем новую обоину try { HttpWebRequest wr = (HttpWebRequest)WebRequest.Create("https://www.bing.com/" + Vars.Url); HttpWebResponse ws = (HttpWebResponse)wr.GetResponse(); Stream str = ws.GetResponseStream(); byte[] inBuf = new byte[102400]; int bytesReadTotal = 0; FileStream fstr = new FileStream(Vars.FullExePath + "\\images\\" + Vars.OriginalName, FileMode.Create, FileAccess.Write); while (true) { int n = str.Read(inBuf, 0, 102400); if ((n == 0) || (n == -1)) { break; } fstr.Write(inBuf, 0, n); bytesReadTotal += n; } str.Close(); fstr.Close(); if (Properties.Settings.Default.Debug == true) { Vars.Debug("Файл загружен: " + Vars.OriginalName); } } catch (Exception e) { // то уведомляем Start.tray.BalloonTipText = "Ошибка загрузки обоев! Попробуйте позже.\nЗавершение работы..."; Start.tray.ShowBalloonTip(3000); if (Properties.Settings.Default.Debug == true) { Vars.Debug($"Ошибка загрузки файла:\n{e.Message}\n"); } Thread.Sleep(3000); Start.tray.Visible = false; // и закрываем прогу Application.Exit(); } } }