Вопрос или проблема
В целях автоматизации тестирования я ищу инструмент “командной строки”, который делает скриншоты. До сегодняшнего дня я был удовлетворен NirCmd, который можно использовать следующим образом:
nircmd savescreenshot screen.png
К сожалению, он делает скриншот только с монитора 1. Поскольку комплектующие с несколькими мониторами становятся все более распространенными, мне нужна альтернатива, которая может работать с несколькими мониторами.
Вывод должен быть похож на тот, который копируется в буфер обмена Windows, если вы нажмете PrintScreen, т.е. он должен учитывать раскладку экранов, а не просто создавать один файл на каждую монитор.
Другие требования
- без зависимостей, если это возможно (можно допустим .NET, так как он идет с Windows). Инструмент должен работать на свежей установке Windows.
- Не требуется установка. Влияние на систему должно быть минимальным.
- бесплатный или с открытым исходным кодом, также для коммерческого использования (поэтому MiniCap не подходит)
- “командная строка”, что означает, что не требуется взаимодействие с пользователем. Не должно открываться черное консольное окно или любое другое окно, так как это может помешать моей задаче автоматизации.
- работать на Windows 7 SP1 x64
Я пробовал:
- посмотреть вопросы в теге скриншот
- cmdline-screenshot-maker (Github), но он тоже делает скриншот только с основного монитора (см. Проблема 4)
Вы можете использовать ImageMagick, который подходит под большинство ваших требований с помощью команды:
convert screenshot: screenshot.jpg
- Вывод должен быть похож на тот, который копируется в буфер обмена Windows, если вы нажмете PrintScreen, т.е. он должен учитывать раскладку экранов, а не просто создавать один файл на каждую монитор. Не с указанной выше командой но указанная выше команда создаст 1 файл на экран, и вы сможете связать его с инструментами мозаики в ImageMagick, чтобы создать то, что вам нужно – вам нужно будет знать раскладку вашего экрана.
- без зависимостей, если это возможно (можно допустим .NET, так как он идет с Windows). Инструмент должен работать на свежей установке Windows. ImageMagick имеет минимальные зависимости и будет работать/установиться на свежей установке.
- Не требуется установка. Влияние на систему должно быть минимальным. Единственная установка, минимальное влияние или также есть портативная дистрибуция, которая не требует полной установки.
- бесплатный или с открытым исходным кодом, также для коммерческого использования (поэтому MiniCap не подходит) – Да, оба.
- “командная строка”, что означает, что не требуется взаимодействие с пользователем. Не должно открываться черное консольное окно или любое другое окно, так как это может помешать моей задаче автоматизации. Поскольку вы указываете, что консольное окно не требуется, и командная строка, я подозреваю, что вы имеете в виду, что это должно быть вызываемым из пакетного файла, в этом случае Да
- работать на 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 с вышеуказанными командами, чтобы гарантировать создание единого изображения для всех ваших экранов. Это решение хорошо интегрируется в ваши автоматизированные тестирования и обеспечивает необходимые функциональные возможности без сложностей, связанных с установкой и взаимодействием с пользовательским интерфейсом.