我从另一篇文章中获得了这段代码,该代码应该可以非常快地截取屏幕截图。我现在正在试验,我注意到每次运行代码时它都会给我相同的屏幕截图。
import win32gui
import win32ui
import win32con
w = 1920
h = 1080
windowname = "My_Window"
def window_capture():
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)
#save screenshot
dataBitMap.SaveBitmapFile(cDC, 'screenshot.bmp')
# Free Resources
dcObj.DeleteDC()
cDC.DeleteDC()
win32gui.ReleaseDC(hwnd, wDC)
win32gui.DeleteObject(dataBitMap.GetHandle())
window_capture()
一旦我启动我的程序,我希望它截取屏幕截图并运行它,它就会完美地保存它。但是,当我第二次运行它并且程序中的视觉效果发生变化时,它仍然为我提供了我拍摄的第一个屏幕截图。我希望它每次运行时都能给我不同的屏幕截图。
我运行了该程序几次,但该程序按照您的预期运行良好。您是否只是重新启动而没有更改任何内容? 尝试更改一些内容并重新启动。