Составляем программу - менеджер фоновых рисунков для рабочего стола.
Дата отправки отчёта:
25 апреля 2015 г.
Задание выполнено: за
3 час. 00 мин.
Чему научился:
Для меня было много нового на уроке. Но, менять обои рабочего стола я научился.
Что было сложным:
Подсмотрел в рубрике "Вопросы и ответы" у petro_zzz как нужно правильно удалять файлы картинок: pictureBox.Image.Dispose();
Комментарии:
Остался у меня один невыясненный вопрос: В видеокурсе переменной dir присваивалось значение "papers\\" и всё отлично работало. У меня же не работало, т.к. в реестре компьютера прописывалось papers\MyImage.jpg. И лишь когда я переменной dir присвоил значение полного пути к файлу "F:\\MyProjects\\NewTechnologies\\WallPaper\\WallPaper\\bin\\Debug\\papers\\" - всё заработало. Как так?
Значение "papers\MyImage.jpg" будет работать только из программы - так как программа задаёт текущую папку именно там, откуда она запущенна, и оттуда этот файл находится по указанному пути. А запись в реестре не привязывается ни к какой корневой папке, поэтому там нужно указывать полный путь.
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.
Научился: Взаимодействию с 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
{ }
}
}