Как сделать скриншот с JNA в Windows? - PullRequest
3 голосов
/ 21 марта 2020

Я нашел несколько примеров кода, но я не знаю, с какими версиями JNA я могу использовать какие методы. Я нашел только фрагменты, где отсутствовали классы, и я не смог их импортировать.

Я хотел бы знать, какую версию JNA мне следует использовать и как получить скриншот как BufferedImage.

Список необходимых импортных данных также был бы великолепен.

1 Ответ

1 голос
/ 21 марта 2020

Похоже, есть несколько примеров по этой ссылке . Я расскажу один ниже (# 3) для целей обсуждения, но вы можете найти один из других примеров, более применимых к вашей ситуации, и, надеюсь, этот ответ поможет вам понять процесс.

Перед примером я ответит на ваш вопрос "какие версии JNA" ... вы должны использовать последнюю версию почти во всех случаях. JNA - это поддерживаемая пользователем библиотека, и основной код JNA не сильно меняется, но каждая новая версия добавляет все больше пользовательских сопоставлений в собственные функции. Обратите внимание на их вопрос FAQ, «JNA отсутствует функция XXX в отображениях библиотеки платформы» и ответ: «Нет, это не так, просто жду, когда вы добавите ее :)». Если нужного вам сопоставления нет в JNA, вы можете просто добавить его, используя предоставленный пример, для ваших непосредственных потребностей. Еще лучше, добавьте свое отображение в проект JNA, чтобы следующий человек в вашей ситуации получил пользу от проделанной вами работы!

Теперь пример № 3 по ссылке делает снимок экрана всего экрана и возвращает его как BufferedImage объект. Полный исходный код для этого примера показывает все импорты, которые вам понадобятся, большинство из класса WinGDI JNA .

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

...