python编程实现屏幕记录功能

文件配置和库的调用可以看我上一个发的博客:

python编程实现键盘记录功能

这里直接上代码:

# -*- 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()

猜你喜欢

转载自blog.csdn.net/hxb002131/article/details/123943741