Python调用windows API实现屏幕截图

好处是

灵活

速度快

缺点是:

写法繁琐

不跨平台

import time

import win32gui, win32ui, win32con, win32api

def window_capture(filename):

hwnd = 0 # 窗口的编号,0号表示当前活跃窗口

# 根据窗口句柄获取窗口的设备上下文DC(Divice Context)

hwndDC = win32gui.GetWindowDC(hwnd)

# 根据窗口的DC获取mfcDC

mfcDC = win32ui.CreateDCFromHandle(hwndDC)

# mfcDC创建可兼容的DC

saveDC = mfcDC.CreateCompatibleDC()

# 创建bigmap准备保存图片

saveBitMap = win32ui.CreateBitmap()

# 获取监控器信息

MoniterDev = win32api.EnumDisplayMonitors(None, None)

w = MoniterDev[0][2][2]

h = MoniterDev[0][2][3]

# print w,h   #图片大小

# 为bitmap开辟空间

saveBitMap.CreateCompatibleBitmap(mfcDC, w, h)

# 高度saveDC,将截图保存到saveBitmap中

saveDC.SelectObject(saveBitMap)

# 截取从左上角(0,0)长宽为(w,h)的图片

saveDC.BitBlt((0, 0), (w, h), mfcDC, (0, 0), win32con.SRCCOPY)

saveBitMap.SaveBitmapFile(saveDC, filename)

beg = time.time()

for i in range(10):

window_capture("haha.jpg")

end = time.time()

print(end - beg)

pythonenumapi_Python调用windows API实现屏幕截图相关推荐

  1. python windows api截图_Python调用windows API实现屏幕截图

    Python调用windows API实现屏幕截图 好处是 灵活 速度快 缺点是: 写法繁琐 不跨平台 import time import win32gui, win32ui, win32con, ...

  2. C#中调用Windows API时的数据类型对应关系

    C#中调用Windows API时的数据类型对应关系 原文 C#中调用Windows API时的数据类型对应关系 BOOL=System.Int32 BOOLEAN=System.Int32 BYTE ...

  3. C#调用windows api的要点

    在.Net Framework SDK文档中,关于调用Windows API的指示比较零散,并且其中稍全面一点的是针对Visual Basic .net讲述的.本文将C#中调用API的要点汇集如下,希 ...

  4. C#中调用Windows API的要点

    在.Net Framework SDK文档中,关于调用Windows API的指示比较零散,并且其中稍全面一点的是针对Visual Basic .net讲述的.本文将C#中调用API的要点汇集如下,希 ...

  5. 用C#调用Windows API向指定窗口发送按键消息

    为什么80%的码农都做不了架构师?>>>    用C#调用Windows API向指定窗口发送 一.调用Windows API. C#下调用Windows API方法如下: 1.引入 ...

  6. 善于 调用Windows API

    前一段时间看见别人做的一个自动填写信息并且点击登录的程序,觉得很有意思. 其实就是在程序中调用Windows的API,那么如何调用,下面就做个简单的介绍. 写的简单粗暴, 不喜轻喷. 0.首先引入名称 ...

  7. C#中调用Windows API的要点【转载】

    在.Net Framework SDK文档中,关于调用Windows API的指示比较零散,并且其中稍全面一点的是针对Visual Basic .net讲述的.本文将C#中调用API的要点汇集如下,希 ...

  8. 在C#中调用windows API函数

    Api函数是构筑Windws应用程序的基石,每一种Windows应用程序开发工具,它提供的底层函数都间接或直接地调用了Windows API函数,同时为了实现功能扩展,一般也都提供了调用Windows ...

  9. [收集]Visual C#中调用Windows API

    在.Net Framework SDK文档中,关于调用Windows API的指示比较零散,并且其中稍全面一点的是针对Visual Basic .net讲述的.本文将C#中调用API的要点汇集如下,希 ...

最新文章

  1. python和c++哪个好学-C++和Python哪一个更好?
  2. C语言日志级别和作用,自己写的C语言通用日志框架,可以控制日志输出等级
  3. 在linux查看内存的大小
  4. boost::hana::partition用法的测试程序
  5. java定义基础变量语句_编程语言第一:JAVA语言基础,变量
  6. C语言全局变量和局部变量深入
  7. 弹性碰撞后速度方向_IPC: SIGGRAPH 2020开源有限元碰撞独家处理方案
  8. 移动平台深度神经网络实战
  9. 游戏开发--开源软件13--libgdx(Android)||Angle(android 2D...
  10. 百度指数查关键词(惊到我啦)
  11. Bevy 游戏引擎开发指南
  12. python读书心得体会_终于领会学习python的心得体会
  13. Kubernetes PV与PVC
  14. Ansible hosts文件写法
  15. 【msvcr120.dll下载】msvcr120.dll丢失怎么修复
  16. english book1 unit8
  17. metrics.accuracy_score()函数 计算acc
  18. 期权、期货及其他衍生产品 第四章读书笔记 利率
  19. 计算机信息安全技术知识点简摘又名我的期末考试复习第一弹
  20. Win10蓝屏BAD_POOL_CALLER解决方案(IRST)

热门文章

  1. 自适应中值滤波用于超声图像降噪
  2. Ubuntu下添添加的用户没有sudo权限的解决办法
  3. delphi调用选择目录对话框
  4. linux中以A开头的函数使用方式历程及详解
  5. FreeRTOS 的命名规则
  6. 【快乐水题】2000. 反转单词前缀
  7. S5PV210开发 -- 驱动开发相关硬件简介
  8. 为什么要加上拉电阻和下拉电阻
  9. Java中“==”和equals()的区别
  10. Ethermint部署及框架解析