Skip to main content
 首页 » 编程设计

python之JOGL小程序Win7下截屏

2025年05月04日9落叶无声

我正在尝试截取运行在 浏览器。该小程序使用 JOGL(Java 的 OpenGL)显示 3D 楷模。 (1) 屏幕截图总是非黑即白。 当前解决方案使用通常的 GDI 调用。小程序的屏幕截图不是 运行 OpenGL 没问题。
可以在此处找到 JOGL 应用程序的一些示例 https://jogl-demos.dev.java.net/ (2) 我要实现的另一件事是获取可滚动区域 屏幕截图内也是如此。

我在互联网上找到了这段代码,除了 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)   

请您参考如下方法:

除非您尝试将其自动化,否则我会为此使用 Firefox 扩展。从 a search for "screenshot" 中返回了一些可以截取整个浏览器页面的屏幕截图,包括可滚动区域:

但是,很抱歉,如果您确实尝试以编程方式进行调试,我对 Python 的了解还不足以调试您的具体问题。