コード例 #1
0
 /// <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); }
 }
コード例 #2
0
ファイル: Start.cs プロジェクト: Ivanshka/Bing-Wallpaper
        /// <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);
            }
        }
コード例 #3
0
        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();
                }
            }
        }