Скриншот Python 2+ мониторов (windows)

Как сделать снимок экрана с помощью python, если подключен к нескольким мониторам?

Я пробовал:

import sys
from PyQt4.QtGui import QPixmap, QApplication
app = QApplication(sys.argv)
QPixmap.grabWindow(QApplication.desktop().winId()).save('test.png', 'png')

import ImageGrab
im = ImageGrab.grab()
im.save('test.png', 'PNG')

Оба варианта предоставляют снимок экрана, только основной монитор

Если я использую winapi :

hWnd = win32gui.FindWindow(None, win_name)
dc = win32gui.GetWindowDC(hWnd)
i_colour = int(win32gui.GetPixel(dc,int(x),int(y)))
rgb = ((i_colour & 0xff), ((i_colour >> 8) & 0xff), ((i_colour >> 16) & 0xff))

Я получаю изображение из окна на втором мониторе. Но это будет очень медленно.

Если я нажму кнопку 'printscreen' в буфере обмена, будет обычный снимок экрана со всеми мониторами. Есть ли возможность чтобы получить полный снимок экрана в Python?

7
задан Echeg 4 August 2011 в 12:05
поделиться