Как стать автором
Обновить
2692.45
RUVDS.com
VDS/VPS-хостинг. Скидка 15% по коду HABR15

Лучший софт для автоматизации скриншотов

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров30K
Такие скриншоты присылала Таня

У нас была знакомая девушка Таня (имя изменено), которая делала скриншоты ПК только смартфоном. То есть фотографировала экран — и присылала сделанную фотографию. Всё с телефончика, очень удобно…

В то же время есть масса эффективных инструментов для сохранения копии экрана каждую секунду или минуту, хранения архива, поиска по нему, автоматического копирования на удалённый хостинг и т. д.

▍ Важность скриншотов


Трудно переоценить значение скриншотов для рабочего архива.

Скриншоты с датами помогают быстро восстановить контекст, то есть вспомнить рабочий проект

В резервных копиях часто сохраняют только файлы. Но это не совсем полноценный подход. Дело в том, что файлы не содержат полной информации о вашей работе. Цифровая работа крайне эфемерна.

Очень много контекстной информации не попадает в файлы. Например, в случае программной разработки это могут быть такие детали:

  • конфигурация рабочего компьютера (аппаратная платформа, CPU, память, ОС);
  • конфигурация среды разработки (IDE, версии вспомогательных инструментов);
  • условия сборки, компиляции и выполнения программы;
  • внешний вид среды разработки и рабочей системы.

Важно, в какой конкретно системе выполняется программа, какие там шрифты, размер экрана, архитектура CPU, память. В идеале хорошо бы сохранять программу вместе с железом, на котором она выполняется. Но в реальности спустя годы железо поменяется, поэтому результат непредсказуем.

Даже если открыть обычный текстовый файл *.doc 20-летней давности, вы увидите совсем не то, что было у вас на экране в Microsoft Word 6.0 под DOS два десятилетия назад. Текст поехал, шрифты изменились, нумерация страниц сбилась и т. д. Хорошо, если кодировка вообще распознаётся…


Если потомки получат в своё распоряжение лишь программный код, то вряд ли смогут запустить его без контекстной информации. Без картинок никто вообще не поймёт, что это такое и для чего программа. Да и сам автор не вспомнит все детали через несколько десятилетий, если увидит свои файлы без всякого контекста.

Если в проекте есть графика — интерфейс, дизайн, вёрстка — то важность скриншотов многократно увеличивается. Спустя годы компьютеры станут совсем другими. Процессоры, ОС, системные шрифты, графический софт, браузеры, текстовые редакторы, форматы файлов — всё меняется. Только скриншоты покажут ту самую картинку, которую вы сейчас видите на экране. И то, если софт будущего сможет прочитать этот графический формат.

Поэтому архив скриншотов и хронология проекта в картинках — очень важная часть бэкапа. В некоторых случаях только она позволит восстановить контекст и важные детали, записать которые вам даже в голову не приходит. Чем больше скриншотов — тем лучше. Есть смысл установить автоматическое снятие по таймеру с сохранением в рабочую папку, наряду с ручным сохранением ключевых моментов.

▍ Автоматическое снятие и архивирование


Некоторые программы для снятия скриншотов можно запрограммировать на автоматическое сохранение рабочего стола, чтобы потом легко восстановить историю событий по дате и времени. Они настраиваются на сохранение скриншотов в указанной папке. А уже эту папку средствами операционной системы можно синхронизировать с облачным хранилищем типа iCloud Drive, Google Drive или Яндекс.Диск. Таким образом, всё делается автоматически, а мы не боимся ничего потерять. Просмотреть визуальную историю в архиве можно в любой момент.

Предупреждение безопасности. В случае с автоматической системой скриншотов в архив может попасть конфиденциальная информация, которая иногда выводится на экран. Таким образом, есть смысл приравнять правила сохранения визуальной истории к правилам хранения паролей, то есть в зашифрованном виде под защитой мастер-пароля. Если подумать, то программа с такой функциональностью (автоматическое снятие и сохранение скриншотов через заданные интервалы) несильно отличается от spyware. Так что не устанавливайте её на чужие компьютеры, это некрасиво и незаконно.

Другой способ автоматизировать снятие скриншотов — простой шелл-скрипт, который можно запустить при старте системы. Например, вот простенький скрипт для сохранения скриншотов каждые 10 секунд:

#!/bin/bash
t=10
#s="foo.png"
s=""
while true; do
    f="$(date "+%Y-%m-%d%.%H.%M.%S").png"
    echo "$f"
    screencapture -x "$s" "$f"
    [ "$s" != "" ] && rm "$s"
    sleep "$t" || break
done

Более удобный вариант — использовать кроссплатформенную библиотеку типа screenshots-rs, которая поддерживает в том числе скриншоты для определённой области экрана по указанным координатам. Эту библиотеку использует консольная утилита mgcapture. Там настройки в файле config.json имеют следующий вид:

 {
"output_directory": "screenshots",
"interval_seconds": 600,
"folder_format": "%Y-%m-%d",
"file_format": "%Y-%m-%d_%H-%M-%S",
"image_quality": 80
}

Изменяем параметры на необходимые нам — и просто добавляем mgcapture.exe в автозапуск. Ну или вручную можно запускать/останавливать её, когда надо. Понятно, что нет особого смысла в работе программы, когда на экране ничего не меняется, только лишняя трата дискового пространства под скриншоты (хотя есть инструменты дедупликации PNG, см. ниже).

Тут уж кому что привычнее, писать скрипты, использовать библиотеку или настраивать специализированную программу.

Удивительно, но довольно примитивные программы, которые просто снимают скриншоты через заданный интервал, стоят приличных денег. Например, самая примитивная утилита TimeSnapper стоит от $30 (индивидуальная лицензия) до $300 (корпоративная лицензия). Вот уж где настоящие барыги коммерсанты…

TimeSnapper

Хотя есть опенсорсные (и бесплатные) альтернативы на порядок функциональнее.

▍ Скриншоты под Linux


Под Linux можно рекомендовать замечательную программу Flameshot (она также работает под Windows и Mac).

Flameshot

Некоторые функции:

  • быстрое редактирование скриншотов (стрелочки, полоски, прямоугольники, кружки, цифры, текст, произвольные линии и др.);
  • настройка элементов интерфейса, горячих клавиш и др.;
  • автоматическое снятие экрана через заданные интервалы времени
  • автоматическая загрузка скриншотов на удалённый хостинг;
  • консольный интерфейс

Быстрое редактирование

Консольный интерфейс

Как вариант, можно просто запустить известную программу для записи скринкастов OBS с низким фреймрейтом. Скажем, записывать кадр каждые 3 или 5 секунд, со звуком или без. Примерно то же самое делает Dashcam — скрин-рекордер для разработчиков.

Dashcam

Ну или скрипты, упомянутые выше.

▍ Скриншоты под Windows и Mac


Под Windows и Mac много программ для скриншотов, так что сложно рекомендовать что-то конкретное. Из самых популярных под Windows можно назвать ShareX и Greenshot. Они тоже поддерживают функцию автоматизации, как описано выше, когда скриншоты делаются через заданные интервалы и складываются в папку с именами файлов, соответствующими дате и времени снятия.

ShareX

Под Mac есть CleanShot. Это очень продвинутая программа с 50 функциями для скриншотов: поддержка скроллинга вниз (мультистраничные скриншоты), запись скринкастов в видео или GIF (с видеоредактором), распознавание текста, очистка фона и замена его на произвольные цвета, запись нажатий клавиш и многое другое. Но программа платная.


Некоторые из 50 функций CleanShot

Реализовать базовую функциональность автоматизации несложно с помощью опенсорсных инструментов. Например, можно порекомендовать бесплатный кроссплатформенный Flameshot.

Под MacOS и iOS есть ещё интересная программка Rewind AI, которая тоже автоматически записывает всё, что появляется на экране — и позволяет искать в архиве записей, но со встроенным GPT-4. Архив хранится локально ради приватности. Поиск можно фильтровать по приложениям:


Программа распознаёт текст и отвечает на вопросы с использованием AI. Это решает сразу несколько задач:

  • автоматическое сохранение работы на случай системного сбоя;
  • автоматическая запись созвонов и совещаний;
  • применение GPT-4 для составления писем и других рабочих заметок.

К сожалению, программа довольно дорогая, полная версия RewindAI без ограничения на количество поисков стоит $30 в месяц.

Повторим, что необязательно использовать специализированный софт. Если вы обладаете навыками написания скриптов, то можно все функции прописать в нём, включая копирование файлов на удалённый хостинг (с архивированием и шифрованием). Есть специализированная БД для хранения PNG с дедупликацией блоков. Как вариант, для этих целей можно использовать pixelmatch.

В общем, каждый выбирает удобный для себя способ копирования экрана, также как дальнейший метод автоматизации и резервного копирования зашифрованных архивов со скриншотами. Такой архив — наиболее эффективный способ сохранить все наши действия и всю увиденную информацию, воспроизвести баги и вспомнить всю работу в малейших деталях. Любые изменения кода и все написанные сообщения. Теперь никогда не возникнет ситуация, что вы точно видели какой-то интересный сайт или анекдот, но не можете найти его ни в интернете, ни в истории браузера, нигде. Больше такого не случится. В архиве скриншотов хранится всё, что вы видели.

Telegram-канал с розыгрышами призов, новостями IT и постами о ретроиграх ?️
Теги:
Хабы:
Всего голосов 45: ↑45 и ↓0+45
Комментарии61

Публикации

Информация

Сайт
ruvds.com
Дата регистрации
Дата основания
Численность
11–30 человек
Местоположение
Россия
Представитель
ruvds