通过python实现windows桌面截图代码实例

yipeiwu_com6年前Python基础

这篇文章主要介绍了python实现windows桌面截图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

代码实例

import time

import win32api
import win32con
import win32gui
import win32ui


def get_desk():
  # 获取桌面
  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)# 为bitmap开辟空间
  mem_dc.SelectObject(screenshot) # 将截图保存到Bitmap中
  mem_dc.BitBlt((0,0),(width,height),img_dc,(left,top),win32con.SRCCOPY) # 截取从左上角(0,0)长宽为(w,h)的图片

  # 保存到文件
  time_tup=time.localtime(time.time())
  format_time="%Y-%m-%d_%a_%H-%M-%S"
  cur_time=time.strftime(format_time,time_tup)
  screenshot.SaveBitmapFile(mem_dc,'{}.bmp'.format(cur_time))

  # 释放内存
  mem_dc.DeleteDC()
  win32gui.DeleteObject(screenshot.GetHandle())

if __name__ == '__main__':
  get_desk()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python自定义装饰器原理与用法实例分析

本文实例讲述了Python自定义装饰器原理与用法。分享给大家供大家参考,具体如下: 什么是装饰器?装饰器本质是一个函数,它可以在不改变原来的函数的基础上额外的增加一些功能。如常见的@cl...

详解pyqt5 动画在QThread线程中无法运行问题

详解pyqt5 动画在QThread线程中无法运行问题

自己做了一个tcp工具,在学习动画的时候踩了坑,需求是根据上线变绿色,离线变灰色,如果连接断开了,则变为灰色 问题现象: 可以看到点击“连接”,“离线”的时候动画是正常的,但是当tcp...

python ftplib模块使用代码实例

这篇文章主要介绍了python ftplib模块使用代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python中默认安装的f...

简单了解python变量的作用域

简单了解python变量的作用域

1.效果图: 2.代码 # 作用域 是 对象生效的区域(对象能被使用的区域) # 全局作用域在任意位置可生效 # 局部作用域在函数内生效 c = 20 # 全局变量 def f...

Python 内置函数complex详解

英文文档: class complex([real[, imag]]) Return a complex number with the value real + imag*1j or...