通过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性能优化技巧
Mar 09 Python
python检测远程端口是否打开的方法
Mar 14 Python
谈谈python中GUI的选择
Mar 01 Python
pygame实现俄罗斯方块游戏
Jun 26 Python
使用PM2+nginx部署python项目的方法示例
Nov 07 Python
python按修改时间顺序排列文件的实例代码
Jul 25 Python
用Python调用win命令行提高工作效率的实例
Aug 14 Python
Python如何使用内置库matplotlib绘制折线图
Feb 24 Python
解决Python spyder显示不全df列和行的问题
Apr 20 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
Apr 22 Python
Pycharm github配置实现过程图解
Oct 13 Python
Pytorch中Softmax和LogSoftmax的使用详解
Jun 05 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 isset()与empty()的使用区别详解
2010/08/29 PHP
解析php框架codeigniter中如何使用框架的session
2013/06/24 PHP
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
JQuery 动态扩展对象之另类视角
2010/05/25 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
js实现字符串的16进制编码不加密
2014/04/25 Javascript
JavaScript判断变量是对象还是数组的方法
2014/08/28 Javascript
jQuery原理系列-常用Dom操作详解
2016/06/07 Javascript
详解Angular-Cli中引用第三方库
2017/05/21 Javascript
QRCode.js:基于JQuery的生成二维码JS库的使用
2017/06/23 jQuery
信息滚动效果的实例讲解
2017/09/18 Javascript
浅谈PDF.js使用心得
2018/06/07 Javascript
Vue2.0仿饿了么webapp单页面应用详细步骤
2018/07/08 Javascript
mpvue跳转页面及注意事项
2018/08/03 Javascript
vue单页应用在页面刷新时保留状态数据的方法
2018/09/21 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
Python简单实现子网掩码转换的方法
2016/04/13 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
python递归打印某个目录的内容(实例讲解)
2017/08/30 Python
python分治法求二维数组局部峰值方法
2018/04/03 Python
python生成不重复随机数和对list乱序的解决方法
2018/04/09 Python
Python生成短uuid的方法实例详解
2018/05/29 Python
浅谈python 导入模块和解决文件句柄找不到问题
2018/12/15 Python
flask框架jinja2模板与模板继承实例分析
2019/08/01 Python
Python 在OpenCV里实现仿射变换—坐标变换效果
2019/08/30 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
简单了解Django ORM常用字段类型及参数配置
2020/01/07 Python
Python换行与不换行的输出实例
2020/02/19 Python
澳大利亚网上书店:QBD
2021/01/09 全球购物
为什么会有内存对齐
2016/10/10 面试题
安全生产计划书
2014/05/04 职场文书
五心教育心得体会
2014/09/04 职场文书
2015年办税服务厅工作总结
2015/07/23 职场文书
python开发制作好看的时钟效果
2022/05/02 Python
利用Python脚本写端口扫描器socket,python-nmap
2022/07/23 Python