Составляем программу - менеджер фоновых рисунков для рабочего стола.
Дата отправки отчёта:
25 марта 2017 г.
Задание выполнено: за
3 час. 00 мин.
Чему научился:
Скачивать картинки из инета и устанавливать их обоями Рабочего стола.
Что было сложным:
Долго делал сперва из-за того, что на экране в названии переменной i принял за единицу и не мог понять, что VS от меня хочет, а потом по невнимательности сделал пару очепяток.
Комментарии:
Урок очень понравился, очень полезный. Только не стал удалять pictureBox, мне кажется, что возможность предпросмотра того, что ставишь обоями, все же важнее, чем удалить ненужную картинку из папки.
Всё верно, Молодец! Пред просмотр картинок в данной программе это очень важный элемент, её удаление не имеет смысла, тогда уже лучше консольное приложение написать, там как раз только текст =)
Научился: Взаимодействию с Windows API. Трудности: Подружиться с Windows API.
Да, и почему то в редакторе реестра, в том параметре, где указывается путь к скриншоту, у меня написан короткий путь к файлу, а не полный. Поэтому у меня вместо фона устанавливался черный фон. Пришлось немного пошаманить с переменной dir, чтобы в этот параметр заносился полный путь. Я добился своего, но обратной стороной медали стало то, что теперь в перечне скриншотов в самой программе я не могу избавиться от косой черты в именах файлов. Но основную задачу я при этом выполнил - файлы успешно скачиваются по ссылке и устанавливаются в виде фона.
Если будет время и настраение - буду думать как избавиться от косой черты.
Спасибо за интересный, хоть и сложный урок.
Научился: Управлять обоями рабочего стола, управлять файлами, создавать папки. Трудности: Вывести обои рабочего стола (потребовалось указать полный путь) 1) При попытке установить фоновый рисунок экран закрашивался в черный цвет. В реестре путь выглядел как paper/file.jpg. Пришлось прописать полный путь следующим образом:
string dir = Environment.CurrentDirectory + "\\paper\\";
Может, конечно, в уроке это место просмотрела.
2) Я не стала удалять PictureBox, а просто освободила ресурсы перед удалением файла, и все получилось:
private void list_picture_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Delete)
{
if (list_picture.SelectedIndex < 0) return;
try
{
picture.Image.Dispose(); // вот эта строка высвобождает ресурсы
picture.Image = null;
File.Delete(dir + list_picture.SelectedItem.ToString());
ReloadPictures();
}
catch
{ }
}
}