我試圖拍攝一個在 瀏覽器中運行的小程序的屏幕截圖。該applet使用JOGL(OpenGL for Java)來顯示3D 模型。 (1)屏幕截圖總是出現黑色或白色。當前的解決方案使用通常的GDI調用。運行OpenGL的applet不是 的屏幕截圖很好。
JOGL應用程序的幾個例子可以在這裏找到https://jogl-demos.dev.java.net/ (2)我試圖實現的另一件事是讓屏幕截圖中的滾動區域 以及。JOGL Applet的Win7下的屏幕截圖
我在互聯網上發現了這個代碼,除了上面提到的2 問題以外,它工作正常。
import win32gui as wg
import win32ui as wu
import win32con
def copyBitMap(hWnd, fname):
wg.SetForegroundWindow(hWnd)
cWnd = wu.CreateWindowFromHandle(hWnd)
rect = cWnd.GetClientRect()
(x,y) = (rect[2] - rect[0], rect[3] - rect[1])
hsrccDc = wg.GetDC(hWnd)
hdestcDc = wg.CreateCompatibleDC(hsrccDc)
hdestcBm = wg.CreateCompatibleBitmap(hsrccDc, x, y)
wg.SelectObject(hdestcDc, hdestcBm.handle)
wg.BitBlt(hdestcDc, 0, 0, x, y, hsrccDc, rect[0], rect[1], win32con.SRCCOPY)
destcDc = wu.CreateDCFromHandle(hdestcDc)
bmp = wu.CreateBitmapFromHandle(hdestcBm.handle)
bmp.SaveBitmapFile(destcDc, fname)
嗨,你解決了嗎? – elect 2015-08-07 13:31:37