Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Новые технологии / Обои рабочего стола

  • Составляем программу - менеджер фоновых рисунков для рабочего стола.
  • Дата отправки отчёта: 21 февраля 2019 г.
  • Задание выполнено: за 1 день 1 час. 27 мин.
  • Чему научился: Отличный урок.
    Узнал о реализации загрузки по URL, так же про работу user System.IO более подробно.
    На вид простенькая задача, при реализации подкинула своих проблем))) Думал что сделаю быстрее, но по мелочи с различными ошибками пришлось разбираться несколько вечеров что к чему.
    Ну спешить некуда. Опыт копиться по крупицам, главное не оставлять невыясненных моментов, когда переходишь к другим вопросам от текущего.
  • Что было сложным: В моем случае, после выбора из списка listPictures файлов каталога \\papers не устанавливалась картинка  на рабочий стол.
    Проанализировал при этом значение в реестре файла - WallPaper. Оно было каким то укороченным.... На рабочем столе при этом становился черный экран (по такому пути не находилось картинки для установки  фона).
    В уроке у Евгения  отличий в коде не нашел...  Но при этом у меня не хотело работать...
    В общем решил искать не соответствие кода и видео а решение проблемы)))
    Выяснил, что при  установке фонового рисунка руками с( помощью контекстного меню Windows) в том же каталоге \\pictures - в WallPaper путь указывается как полный С:\... Пришел к выводу, что нужно попробовать получать полное имя файла из переменной path которую используем для установки. (Использовал для этого метод - Path.GetFullPath(path); ). После того как начал передавать полное имя в SystemParametersInfo...Стало отрабатывать как нужно.
  • Оценка видео-уроку:
Отчёт от 16218 за Новые технологии / Обои рабочего стола


Отчёт от 16218 за Новые технологии / Обои рабочего стола




Оцени работу

 
Сохранить страницу:

11589. --
Yefim
Yefim
ответить
→  Дмитрий  # Новые технологии / Обои рабочего стола / 2019-02-21 09:57

Молодец,  Дмитрий,  что  нашел  свое  решение  возникшей  проблемы!


  • Отчёт оценивали:
    791Валерий Жданов+1   17947Dmitry Sinitsin+1   9752chokayes+1   20619Артём Нагорный+1   11353AlliZzeN+1   20545Max+1   11589Yefim+1   17606Виктор+1   17425ser2018+1   9913vip+1   13417Chip+1   8275Tekashnik+1   20659no name+1   3922Александр+1  

Начинаем практику по языку 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 { } } }