使用のpythonは、スクリーンショットを取得し、問題のブラウザのスクリーンショットは、黒のウィンドウを表示されます使用して解決ビットマップファイルのコピーとして保存します

直接コードに:

輸入win32guiの
 輸入win32ui
 から ctypesのはインポートWINDLL
 インポート画像

HWND = win32gui.FindWindowを(なし、電卓

あなたが全体のウィンドウかどうかに応じて、以下の行を変更または単にクライアント領域を。左、上、右、ボット= win32gui.GetClientRect(HWND)は 
、上部を左、右、ボット= win32gui.GetWindowRect(HWND)
W右= - 
H =ボット- トップ

hwndDC = win32gui.GetWindowDC(HWND)
mfcDC   =win32ui.CreateDCFromHandle(hwndDC)
saveDC = mfcDC.CreateCompatibleDC()

saveBitMap = win32ui.CreateBitmap()
saveBitMap.CreateCompatibleBitmap(mfcDC、W、H)

saveDC.SelectObject(saveBitMap) 

変更するには、ウィンドウ全体をしたいかに応じて、以下の行
#をあるいは単にクライアント領域。結果= windll.user32.PrintWindow(HWND、saveDC.GetSafeHdc()、1) 
RESULT = windll.user32.PrintWindow(HWND、saveDC.GetSafeHdc()、0)
 プリント(結果)

bmpinfo = saveBitMap.GetInfo()
bmpstr = saveBitMap.GetBitmapBits(真)

イム =Image.frombuffer(
     ' RGB ' 
    ([bmpinfo ' bmWidth ' ]、[bmpinfo ' bmHeight ' )]、
    bmpstr、' '' BGRX '、0、1 

win32gui.DeleteObject(saveBitMap.GetHandle())
saveDC。 DeleteDC()
mfcDC.DeleteDC()
win32gui.ReleaseDC(HWND、hwndDC)

であれば、結果== 1 #1 PrintWindow成功 
    im.save(" test.png "

他のアプリケーションでは、ソリューションは別のポストを参照して、スクリーンショットのコピーが黒で見つける:解決される問題の複製ブラウザのスクリーンショットを使用すると、黒い画面が表示されます

おすすめ

転載: www.cnblogs.com/strive-sun/p/12050061.html