Как сделать самообновляющиеся с вебкамеры обои Windows
Вступление
Если осточертел вид из окна или окно отсутствует вовсе, можно найти в интрнете вебкамеру и вывести "слайдшоу" с неё в качестве обоев рабочего стола.
0. Необходимые условия
- Подключение к интернет.
- URL, по которому веб-камера отдаёт картинку
- Права на создание "назначенного задания" в планировщике (обычно есть)
- около 50 Мб дискового пространства
1. Подготовительные операции
1.1 Что необходимо загрузить из интернета
Нужно загрузить две бесплатные опенсорсные программы, хорошо знакомые пользователям linux.
- wget ( http://gnuwin32.sourceforge.net/packages/wget.htm , "binaries")
- ffmpeg (например, http://ffmpeg.zeranoe.com/builds/ )
Не лишними будут также grep,sed,sort,uniq и т.п. из набора gnuwin32 (не забудьте для них необходимые dll из dependencies).
1.2 Создаём папки.
Создаём папку, в которой разместим всё наше "хозяйство", пусть будет, скажем, "d:\tools\wp", далее по тексту "%wphome%".
Создаём папку %wphome%\bin, сохраняем в неё загруженные wget и ffmpeg (и остальное по желанию. Далее эту папку будем называть "%bin%".
2. Настройка
2.1 Настраиваем периодический запуск.
В папке %wphome% создаём текстовый файл "run10min.bat" с содержимым
Код: Выделить всё
echo %date% %time%>>"%~dp0runlog.txt"
Запускаем "run10min.bat" (или ярлык, если XP). Должен появиться "runlog.txt" с текущей датой, никаких окон мелькать не должно.
ВНИМАНИЕ! Дальше инструкция для XP (что в данный момент под рукой). В "семерке" аналогично.
Открываем "панель управления", "назначенные задания", "добавить задание".
Выбираем в качестве программы ("обзор...") наш "run10min.bat" (или "run10min.bat.lnk", если XP).
Выполнять ежедневно
Дата/время - сегодня и сейчас, каждый 1 день
Имя пользователя и пароль - текущий пользователь.
Поставить галку "Установить дополнительные параметры..."
В "дополнительных параметрах" вкладка "Расписание" устанавливаем:
Повторять задание
Каждые 10 минут
В течение 24 часов
Окей, сохраняем задание. правой кнопкой по нему, "выполнить". В файле "runlog.txt" должна появиться текущие дата и время.
Таким образом, получили задание, запускающееся каждые 10 минут.
2.2 Загружаем картинку с веб-камеры и устанавливаем на обои.
В папку %wphome% создаём текстовый файл "getcam.bat" следующего содержания:
Код: Выделить всё
set url=http://solovky.ru/webcam.jpg
set bin=%~dp0bin\
set mytemp=%~dp0temp\
set now=%TIME:~0,-3%
set now=%now::=%
set now=%now:,=%
set now=%now: =0%
set nowtime=%DATE:~-4%_%DATE:~3,2%_%DATE:~0,2%_%now%
set campic=%mytemp%dl\cam_%nowtime%.jpg
set wppic=%mytemp%wp\wp_%nowtime%.bmp
md "%mytemp%\dl"
md "%mytemp%\wp"
del "%mytemp%\wp\*" /Q
rem del "%mytemp%\dl\*" /Q
rem ---------------- Download ------------------
"%bin%wget" -O "%campic%" "%url%"
rem ---------------- Set desktop wallpaper ------------------
"%bin%ffmpeg" -i "%campic%" "%wppic%"
reg add "HKCU\Control Panel\Desktop" /v Wallpaper /d "%wppic%" /f
rem 0-center/tile 2-stretch 6-fit 10-fill
reg add "HKCU\Control Panel\Desktop" /v WallpaperStyle /d "2" /f
rem 0/1 1-tile
reg add "HKCU\Control Panel\Desktop" /v TileWallpaper /d "0" /f
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True
Т.е. было "http://camera.com/image.jpg?channel=1[b]&[/b]mode=1", должно быть "http://camera.com/image.jpg?channel=1[b]^&[/b]mode=1"
Для примера вебкамера на колокольне Валаамского монастыря в правильном формате:
Код: Выделить всё
set url=http://streaming.ivideon.com/preview/live?sessionId=demo^&server=100-d22840e56d45d3d56f291f8eda7fd42c^&camera=0^&q=2
1) В папке %wphome% создаётся папка "temp" с подпапками "dl" и "wp".
2) В папку "dl" загружается картинка с вебкамеры (картинки будут накапливаться).
Чтобы не накапливались, уберитье "rem" перед "del "%mytemp%\dl\*" /Q".
3) Загруженная картинка конвертируется в .bmp в папке "wp" (старая будет удаляться).
4) Полученный .bmp устанавливается как обои.
При необходимости поменяйте значения в "WallpaperStyle" и "TileWallpaper" на нужные (на текущей машине XP и экран 4:3, поэтому так).
2.3 Соединяем эти части.
Смотрим наш "runlog.txt" из части 2.1, убеждаемся, что в него раз добавляются строчки.
Из "run10min.bat" убираем строку "echo ..." и добавляем строку
Код: Выделить всё
call "%~dp0getcam.bat".
Штатными средствами (ну, почти штатными ) получили автообновляемые раз в 10 минут обои с накоплением "галереи" для дальнейшего оффлайнового использования. Расход трафика мизерный.