文件配置和库的调用可以看我上一个发的博客:
这里直接上代码:
# -*- coding: UTF-8 -*-
##############################################################################
# 程序名:screenshot.py
# 功能:利用Python第三方库PyWin32实现截取屏幕功能,将截取的屏幕保存在C盘
# 上的文件screen.bmp中。
# 说 明:运行平台Windows。
##############################################################################
import win32gui
import win32ui
import win32con
import win32api
def screen_shot():
hdesktop = win32gui.GetDesktopWindow() # 获得桌面窗口句柄
# 获得显示器尺寸
width = win32api.GetSystemMetrics(win32con.SM_CXVIRTUALSCREEN)
height = win32api.GetSystemMetrics(win32con.SM_CYVIRTUALSCREEN)
left = win32api.GetSystemMetrics(win32con.SM_XVIRTUALSCREEN)
top = win32api.GetSystemMetrics(win32con.SM_YVIRTUALSCREEN)
desktop_dc = win32gui.GetWindowDC(hdesktop) # 创建设备描述表
img_dc = win32ui.CreateDCFromHandle(desktop_dc)
mem_dc = img_dc.CreateCompatibleDC() # 创建基于内存的设备描述表
screenshot = win32ui.CreateBitmap()
screenshot.CreateCompatibleBitmap(img_dc, width, height) # 创建位图对象
mem_dc.SelectObject(screenshot)
mem_dc.BitBlt((0, 0), (width, height), img_dc, (left, top), win32con.SRCCOPY)# 复制屏幕
screenshot.SaveBitmapFile(mem_dc, 'c:\\screen.bmp') # 将位图保存到文件
mem_dc.DeleteDC() # 释放对象
win32gui.DeleteObject(screenshot.GetHandle())
if __name__ == '__main__':
screen_shot()