我正在尝试截图,然后将其显示在我的窗口中
我用这段代码截图:
def captureScreen():
hWnd = win32gui.GetDesktopWindow()
screenLeft = win32api.GetSystemMetrics(win32con.SM_XVIRTUALSCREEN)
screenTop = win32api.GetSystemMetrics(win32con.SM_YVIRTUALSCREEN)
screenWidth = win32api.GetSystemMetrics(win32con.SM_CXVIRTUALSCREEN)
screenHeight = win32api.GetSystemMetrics(win32con.SM_CYVIRTUALSCREEN)
hDc = win32gui.GetWindowDC(hWnd)
srcdc = win32ui.CreateDCFromHandle(hDc)
memdc = srcdc.CreateCompatibleDC()
bmp = win32ui.CreateBitmap()
bmp.CreateCompatibleBitmap(srcdc, screenWidth, screenHeight)
memdc.SelectObject(bmp)
memdc.BitBlt((0, 0), (screenWidth, screenHeight), srcdc, (screenLeft, screenTop), win32con.SRCCOPY)
return bmp
并将此代码显示在窗口上:
if message == win32con.WM_PAINT:
hDC, paintStruct = win32gui.BeginPaint(hWnd)
win32gui.SelectObject(hDC, bitmap)
rect = win32gui.GetClientRect(hWnd)
win32gui.BitBlt(hDC, 0, 0, screenWidth, screenHeight, 0, 0, 0, win32con.SRCCOPY)
win32gui.EndPaint(hWnd, paintStruct)
return 0
我得到一个错误:
Traceback (most recent call last):
File "main.py", line 63, in wndProc
win32gui.SelectObject(hDC, bitmap)
TypeError: The object is not a PyHANDLE object
我似乎不知道问题出在哪里。谢谢
目前没有回答
相关问题 更多 >
编程相关推荐