在Windows上使用python截屏的最快方法

发布于 2021-01-29 19:36:15

在Windows上截图的最快方法是什么?PIL.ImageGrab是相当慢的..花费4-5秒钟才能获得同一小窗口的30个屏幕截图。拍摄整个桌面的屏幕截图甚至更慢。

关注者
0
被浏览
89
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以直接使用win32 API。

    1)首先将焦点放在您要为其截屏的应用程序上。连结文字 “焦点问题在另一个问题中处理”)

    2)Win32 API可以帮助截图:

    import win32gui
    import win32ui 
    hwnd = win32gui.FindWindow(None, windowname)
    wDC = win32gui.GetWindowDC(hwnd)
    dcObj=win32ui.CreateDCFromHandle(wDC)
    cDC=dcObj.CreateCompatibleDC()
    dataBitMap = win32ui.CreateBitmap()
    dataBitMap.CreateCompatibleBitmap(dcObj, w, h)
    cDC.SelectObject(dataBitMap)
    cDC.BitBlt((0,0),(w, h) , dcObj, (0,0), win32con.SRCCOPY)
    dataBitMap.SaveBitmapFile(cDC, bmpfilenamename)
    # Free Resources
    dcObj.DeleteDC()
    cDC.DeleteDC()
    win32gui.ReleaseDC(hwnd, wDC)
    win32gui.DeleteObject(dataBitMap.GetHandle())
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看