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


Posted in Python onJanuary 17, 2020

这篇文章主要介绍了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实现抓取页面上链接的简单爬虫分享
Jan 21 Python
Python实现的简单hangman游戏实例
Jun 28 Python
Django查找网站项目根目录和对正则表达式的支持
Jul 15 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
Feb 15 Python
使用python实现ftp的文件读写方法
Jul 02 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
Oct 23 Python
django restframework serializer 增加自定义字段操作
Jul 15 Python
给Django Admin添加验证码和多次登录尝试限制的实现
Jul 26 Python
如何利用Python 进行边缘检测
Oct 14 Python
python 实现倒计时功能(gui界面)
Nov 11 Python
python tqdm库的使用
Nov 30 Python
Jupyter Notebook 安装配置与使用详解
Jan 06 Python
PyTorch加载预训练模型实例(pretrained)
Jan 17 #Python
python 正则表达式参数替换实例详解
Jan 17 #Python
Python函数式编程实例详解
Jan 17 #Python
python实现tail -f 功能
Jan 17 #Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
Jan 16 #Python
python对象销毁实例(垃圾回收)
Jan 16 #Python
python读取dicom图像示例(SimpleITK和dicom包实现)
Jan 16 #Python
You might like
15种PHP Encoder的比较
2007/03/06 PHP
使用php来实现网络服务
2009/09/15 PHP
避免Smarty与CSS语法冲突的方法
2015/03/02 PHP
Yii2中cookie用法示例分析
2016/07/18 PHP
php 使用redis锁限制并发访问类示例
2016/11/02 PHP
php+mysql+jquery实现简易的检索自动补全提示功能
2017/04/15 PHP
java解析json方法总结
2019/05/16 PHP
PHP检测一个数组有没有定义的方法步骤
2019/07/20 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
2019/12/31 PHP
event对象获取方法总结在google浏览器下测试
2013/11/03 Javascript
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
零基础轻松学JavaScript闭包
2016/12/30 Javascript
jquery 校验中国身份证号码实例详解
2017/04/11 jQuery
Mobile Web开发基础之四--处理手机设备的横竖屏问题
2017/08/11 Javascript
基于vue2实现上拉加载功能
2017/11/28 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
python正则表达式之作业计算器
2016/03/18 Python
浅析Python中元祖、列表和字典的区别
2016/08/17 Python
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
Python Django实现layui风格+django分页功能的例子
2019/08/29 Python
Django Path转换器自定义及正则代码实例
2020/05/29 Python
Django Form设置文本框为readonly操作
2020/07/03 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
在canvas上实现元素图片镜像翻转动画效果的方法
2018/03/20 HTML / CSS
搞笑征婚广告词
2014/03/17 职场文书
团队精神的演讲稿
2014/05/14 职场文书
签证工作证明模板
2015/06/15 职场文书
2015年七夕情人节感言
2015/08/03 职场文书
死磕 java同步系列之synchronized解析
2021/06/28 Java/Android
MYSQL 表的全面总结
2021/11/11 MySQL
小喇叭开始广播了! 四十多年前珍贵老照片
2022/05/09 无线电
mysql如何查询连续记录
2022/05/11 MySQL
使用 DataAnt 监控 Apache APISIX的原理解析
2022/07/07 Servers