@AlikhanPython
Учу программирование на Python.

Как на Python сделать скриншот рабочего стола?

Как на Python сделать скриншот рабочего стола на Windows? Не скриншот экрана а именно рабочего стола. То есть, мы можем делать все что угодно на компьютере, а программа будет делать скриншот рабочего стола без окон различных приложений и так далее. То есть обычный скриншот именно рабочего стола без прочего мусора.
  • Вопрос задан
  • 402 просмотра
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Ну технически это возможно, но проблематично.
WinAPI позволяет получить скриншот окна с указанным дескриптором с помощью серии вызовов GetDC() -> CreateCompatibleDC() -> BitBlt(). Достучаться из Питона до винапи утомительно, но реально, пакет pywin32 в помощь.
Проблема в том, что рабочий стол может состоять из более чем одного окна - например, фон может быть отдельно, а иконки - отдельно. Это зависит как минимум от версии Windows, и даже может меняться в рамках одной версии (на этом основан трюк, позволяющий поместить окно приложения ПОД иконками).
Тебе придётся определить окна, принадлежащие рабочему столу, получить их дескрпиторы, сделать их скриншоты, а потом как-то свести их вместе.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы