Сделайте снимок экрана из “командной строки”

Вопрос или проблема

В целях автоматизации тестирования я ищу инструмент “командной строки”, который делает скриншоты. До сегодняшнего дня я был удовлетворен NirCmd, который можно использовать следующим образом:

nircmd savescreenshot screen.png

К сожалению, он делает скриншот только с монитора 1. Поскольку комплектующие с несколькими мониторами становятся все более распространенными, мне нужна альтернатива, которая может работать с несколькими мониторами.

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

Другие требования

  • без зависимостей, если это возможно (можно допустим .NET, так как он идет с Windows). Инструмент должен работать на свежей установке Windows.
  • Не требуется установка. Влияние на систему должно быть минимальным.
  • бесплатный или с открытым исходным кодом, также для коммерческого использования (поэтому MiniCap не подходит)
  • “командная строка”, что означает, что не требуется взаимодействие с пользователем. Не должно открываться черное консольное окно или любое другое окно, так как это может помешать моей задаче автоматизации.
  • работать на Windows 7 SP1 x64

Я пробовал:

Вы можете использовать ImageMagick, который подходит под большинство ваших требований с помощью команды:

convert screenshot: screenshot.jpg
  1. Вывод должен быть похож на тот, который копируется в буфер обмена Windows, если вы нажмете PrintScreen, т.е. он должен учитывать раскладку экранов, а не просто создавать один файл на каждую монитор. Не с указанной выше командой но указанная выше команда создаст 1 файл на экран, и вы сможете связать его с инструментами мозаики в ImageMagick, чтобы создать то, что вам нужно – вам нужно будет знать раскладку вашего экрана.
  2. без зависимостей, если это возможно (можно допустим .NET, так как он идет с Windows). Инструмент должен работать на свежей установке Windows. ImageMagick имеет минимальные зависимости и будет работать/установиться на свежей установке.
  3. Не требуется установка. Влияние на систему должно быть минимальным. Единственная установка, минимальное влияние или также есть портативная дистрибуция, которая не требует полной установки.
  4. бесплатный или с открытым исходным кодом, также для коммерческого использования (поэтому MiniCap не подходит) – Да, оба.
  5. “командная строка”, что означает, что не требуется взаимодействие с пользователем. Не должно открываться черное консольное окно или любое другое окно, так как это может помешать моей задаче автоматизации. Поскольку вы указываете, что консольное окно не требуется, и командная строка, я подозреваю, что вы имеете в виду, что это должно быть вызываемым из пакетного файла, в этом случае Да
  6. работать на Windows 7 SP1 x64 Да и Windows 8, 10, Linux, OS-X

Ответ или решение

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

1. ImageMagick

Описание: ImageMagick — мощный инструмент для обработки изображений, который поддерживает командную строку и может использоваться для создания скриншотов.

Как использовать:
Для создания скриншота всего рабочего стола в формате JPG можете использовать следующую команду в терминале:

magick import -window root screen.png

Эта команда делает снимок всего рабочего стола, включая все подключенные мониторы, и сохраняет его в файл screen.png.

Преимущества:

  • Минимальные зависимости: ImageMagick может работать без сложной установки, особенно если использовать портативные версии.
  • Бесплатно и открыто: ImageMagick является свободно распространяемым программным обеспечением, доступным для коммерческого использования.
  • Поддержка Windows 7 SP1 x64: Программа совместима с вашей операционной системой и обновлениями.
  • Отсутствие пользовательского интерфейса: Работает из командной строки без открытия дополнительных окон.

Дополнительно: Чтобы установить ImageMagick на Windows, вы можете скачать портативную версию с официального сайта.

2. Nircmd с дополнительными средствами

Хотя вы уже использовали NirCmd и столкнулись с ограничениями, можно рассмотреть комбинирование его функционала с другими инструментами. Вы могли бы использовать NirCmd для создания скриншотов одного экрана и затем объединить эти изображения с помощью ImageMagick или другого инструмента для создания общего изображения.

3. Screenshot Command Line Tool (SLT)

Описание: Этот инструмент также разработан для создания скриншотов через командную строку и может поддерживать многоэкранные конфигурации.

Как использовать:
Команда может выглядеть как:

screenshot.exe /all /output:screen.png

Эта команда создает единый файл для всех мониторов (может варьироваться в зависимости от версии). Подробности можно узнать в документации к инструменту.

Преимущества:

  • Минимальные зависимости: Он достаточно легковесен для работы.
  • Бесплатно и открыто: Не требует лицензии для коммерческого использования.
  • Совместим с Windows 7 SP1 x64.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...