通过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 网络编程起步(Socket发送消息)
Sep 06 Python
Python动态加载模块的3种方法
Nov 22 Python
讲解Python中的递归函数
Apr 27 Python
Python的Django框架中从url中捕捉文本的方法
Jul 20 Python
Python实现SSH远程登陆,并执行命令的方法(分享)
May 08 Python
Python使用openpyxl读写excel文件的方法
Jun 30 Python
用python编写第一个IDA插件的实例
May 29 Python
Python常见的pandas用法demo示例
Mar 16 Python
手把手教你进行Python虚拟环境配置教程
Feb 03 Python
python3用urllib抓取贴吧邮箱和QQ实例
Mar 10 Python
Python Flask请求扩展与中间件相关知识总结
Jun 11 Python
详解Python类和对象内容
Jun 22 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
PHP实现的迷你漂流瓶
2015/07/29 PHP
php函数mkdir实现递归创建层级目录
2016/10/27 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
2019/10/18 PHP
原生javascript和jquery判断浏览器版本等信息
2013/07/04 Javascript
js监听鼠标事件控制textarea输入字符串的个数
2014/09/29 Javascript
node.js中的fs.createWriteStream方法使用说明
2014/12/17 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
详解JavaScript设计模式开发中的桥接模式使用
2016/05/18 Javascript
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
JS封装的三级联动菜单(使用时只需要一行js代码)
2016/10/24 Javascript
jQuery实现表单动态加减、ajax表单提交功能
2018/06/08 jQuery
VUE 动态组件的应用案例分析
2019/12/02 Javascript
JS数组方法reduce的用法实例分析
2020/03/03 Javascript
微信小程序自定义扫码功能界面的实现代码
2020/07/02 Javascript
Map与WeakMap类型在JavaScript中的使用详解
2020/11/18 Javascript
python中json格式数据输出的简单实现方法
2016/10/31 Python
浅谈python中的正则表达式(re模块)
2017/10/17 Python
Python网络爬虫中的同步与异步示例详解
2018/02/03 Python
python+selenium实现简历自动刷新的示例代码
2019/05/20 Python
8种用Python实现线性回归的方法对比详解
2019/07/10 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
详解python中GPU版本的opencv常用方法介绍
2020/07/24 Python
python使用yaml 管理selenium元素的示例
2020/12/01 Python
用CSS3将你的设计带入下个高度
2009/08/08 HTML / CSS
css3实现的多级渐变下拉菜单导航效果代码
2015/08/31 HTML / CSS
Html5画布_动力节点Java学院整理
2017/07/13 HTML / CSS
英国文胸专家:AmpleBosom.com
2018/02/06 全球购物
若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedException?
2016/10/17 面试题
外贸业务员工作职责
2014/01/06 职场文书
计算机应用专业毕业生求职信
2014/06/03 职场文书
2015年科室工作总结
2015/04/10 职场文书
书法社团活动总结
2015/05/07 职场文书
党员反四风学习心得体会
2016/01/22 职场文书
解决Maven项目中 Invalid bound statement 无效的绑定问题
2021/06/15 Java/Android
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS