通过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 面向对象 成员的访问约束
Dec 23 Python
tensorflow实现softma识别MNIST
Mar 12 Python
Python中的二维数组实例(list与numpy.array)
Apr 13 Python
Python自定义一个异常类的方法
Jun 27 Python
Django实现简单网页弹出警告代码
Nov 15 Python
Python解释器及PyCharm工具安装过程
Feb 26 Python
python 比较字典value的最大值的几种方法
Apr 17 Python
python3通过udp实现组播数据的发送和接收操作
May 05 Python
python实现启动一个外部程序,并且不阻塞当前进程
Dec 05 Python
selenium3.0+python之环境搭建的方法步骤
Feb 01 Python
Django rest framework如何自定义用户表
Jun 09 Python
Python函数对象与闭包函数
Apr 13 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
MYSQL 小技巧 -- LAST_INSERT_ID
2009/11/24 PHP
PHP中isset与array_key_exists的区别实例分析
2015/06/02 PHP
php验证手机号码
2015/11/11 PHP
PHP中Notice错误常见解决方法
2017/04/28 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
借用Google的Javascript API Loader来加速你的网站
2009/01/28 Javascript
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
解析瀑布流布局:JS+绝对定位的实现
2013/05/08 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
jQuery中的val()示例应用
2014/02/26 Javascript
Jquery获取第一个子元素简单实例
2016/06/02 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
JavaScript使用readAsDataURL读取图像文件
2017/05/10 Javascript
jsTree事件和交互以及插件plugins详解
2017/08/29 Javascript
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
webpack css加载和图片加载的方法示例
2018/09/11 Javascript
jQuery实现获取当前鼠标位置并输出功能示例
2019/01/05 jQuery
Vue配置marked链接添加target="_blank"的方法
2019/07/19 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
基于js实现数组相邻元素上移下移
2020/05/19 Javascript
vue使用screenfull插件实现全屏功能
2020/09/17 Javascript
JavaScript 实现轮播图特效的示例
2020/11/05 Javascript
python 测试实现方法
2008/12/24 Python
python实现颜色空间转换程序(Tkinter)
2015/12/31 Python
python检测IP地址变化并触发事件
2018/12/26 Python
Python 判断图像是否读取成功的方法
2019/01/26 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
2020/10/20 Python
Python+unittest+requests+excel实现接口自动化测试框架
2020/12/23 Python
浅谈css3新单位vw、vh、vmin、vmax的使用详解
2017/12/01 HTML / CSS
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
2018/01/03 HTML / CSS
美国时尚假发购物网站:Wigsbuy
2019/04/06 全球购物
旅游活动总结
2014/08/27 职场文书
2015年教师节感言
2015/08/03 职场文书
vue首次渲染全过程
2021/04/21 Vue.js
Python 匹配文本并在其上一行追加文本
2022/05/11 Python