Python programming realizes screen recording function

File configuration and library calls can be seen in my last blog:

Python programming to achieve keylogging function

Here is the code directly:

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

Guess you like

Origin blog.csdn.net/hxb002131/article/details/123943741