python怎么调用api_python win32api中文手册

python怎么调用api_python win32api中文手册#1、获得应用窗口句柄hwnd=win32gui.FindWindow(0,“窗口名字”)#2、通过应用窗口句柄获得窗口DChwndDC=win32gui.GetWindowDC(hwnd)#3、通过hwndDC获得mfcDC(注意主窗口用的是win32gui库,操作位图截图是用win32ui库)mfcDC=win32ui.GreateDCFromHandle(hwnd)#4、创建兼容…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

#1、获得应用窗口句柄
hwnd=win32gui.FindWindow(0,“窗口名字”)

#2、通过应用窗口句柄获得窗口DC
hwndDC=win32gui.GetWindowDC(hwnd)

#3、通过hwndDC创建兼容DC(注意主窗口用的是win32gui库,操作位图截图是用win32ui库)
mfcDC=win32ui.GreateDCFromHandle(hwnd)

#4、创建内存兼容DC,实际在内存开辟空间( 将位图BitBlt至屏幕缓冲区(内存),而不是将屏幕缓冲区替换成自己的位图。同时解决绘图闪烁等问题)
neicunDC=mfcDC.CreateCompatibleDC()

#5、创建位图
savebitmap=win32ui.CreateBitmap()

#6、设置位图的大小以及内容(图片为应用窗口的整个截图)
width=40
height=40(长宽为自己想要图片的大小,单位是像素)
savebitmap.CreateCompatibleBitmap(mfcDC,width,height)

#7、将位图放置在兼容DC,即将位图数据放置在刚开辟的内存里
neicunDC.SleteObject(savebitmap)

‘’‘8、截取位图部分,并将截图保存在剪贴板(剪贴板是Windows系统一段可连续的。可随存放信息的大小而变化的内存空间,用来临时存放交换信息。只能保留一份数据,每当新的数据传入,旧的便会被覆盖。平时使用的qq截图、微信截图就是将截好的图放置在剪贴板,然后在QQ/微信窗口粘贴才将截图从剪贴板中取出来)’’’
neicunDC.BitBle((w1,w2),width,height,mfcDC,(x,y),win32con.SRCCOPY)
‘’‘BitBle函数需要输入6个参数,第一参数(w1,w2),指在位图里显示的左上角顶点,一般为(0,0),若不为(0,0),应用位图无法覆盖的地方为黑色背景。第二第三参数width,height最终截图的长宽(一般与上面设置的位图大小一致)。第四参数指窗口的mfcDC。第五参数(x,y)指应用截图起点的逻辑坐标(设备坐标指相对于屏幕左上角为起点的坐标,逻辑坐标指相对于应用窗口左上角的坐标)。第六参数win32con.SRCCOPY,指用复制的方法截取,其他参数可百度光栅操作代码。整个逻辑是内存作为黑色背景墙,第二层为位图,第三层为我们需要截图的位置。所以BitBle的第一个参数是位图放置在黑色背景墙的位置(内存),以黑色背景墙左上角为起点,(w1,w2)为位图左上角顶点的位置。放置好位图后,在位图上截图,截图的长为width,宽为height。截图的起始位置(相对于应用窗口左上角顶点的位置坐标)为(x,y)。’’’

‘’‘9、将截图数据从剪贴板中取出,并保存为bmp图片(注意创建位图使用的是bitmap,故图片格式为bmp。上一步也只是截图并没有操作’另存为’。其中filename为存放图片的名称,可自己修改。保存的路径为当前脚本储存的路径。比如当前脚本在D:\TEST文件夹下,那bmp截图文件也在D:\TEST文件夹下)’’’
savebitmap.SaveBitmapFile(neicunDC,filename)

#10、释放内存
win32gui.delete(savebitmap.GetHandle())
neicunDC.DeleteDC()
mfcDC.DeleteDC()
win32gui.Release(hwnd,hwndDC)

#以上仅为个人理解,方便小白去使用截图制作脚本。本人也是小白

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183194.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月11日 下午12:36
下一篇 2022年10月11日 下午12:46


相关推荐

  • BM3D 算法原理详细解析 按过程步骤讲解(附C++实现代码)[通俗易懂]

    BM3D 算法原理详细解析 按过程步骤讲解(附C++实现代码)[通俗易懂]BM3D是2007年提出的算法了,至今已经有一些年头了,但是仍然不妨碍它基本上还是最强的去噪算法。在初步了解了BM3D的算法后,会发现,BM3D有种堆叠怪的嫌疑。有很多不同的算法的影子在里面,比如Non-LocalMeans、Waveletshrinkage等。我感觉思想更像是暴力出奇迹吧。但是架不住效果好。就类似现在的神经网络,一层不行我就来两层。但是相比简单的堆叠,BM3D还是比其他的算法的细节保留上要好一些。好了,不废话了,下面直接来看BM3D的算法原理吧。BM3D算法原理:

    2022年5月27日
    35
  • 真实评测-千问图像2.0VS即梦5.0:AI生图的能力边界在哪里?

    真实评测-千问图像2.0VS即梦5.0:AI生图的能力边界在哪里?

    2026年3月13日
    3
  • 有向无环图描述表达式

    有向无环图描述表达式文章目录 1 什么是有向无环图 2 有向无环图描述表达式 3 有向无环图描述表达式的生成步骤 1 什么是有向无环图 2 有向无环图描述表达式 3 有向无环图描述表达式的生成步骤这样 比较混乱 如果式子一长 不容易看出来 因此 按照如下步骤进行计算 把各个操作数不重复地排成一排标出各个运算符的生效顺序 先后顺序优点出入无所谓 比如先算左边括号或者先算右边括号 当然是同级的情况 按顺序加入运算符 不同的运算级别层次不同 过程中如果已经存在某部分 则直接用最后生成的图就是有向无环图按照

    2026年3月19日
    3
  • STM32 LCD12864 串行通信模式 (从原理让你理解)

    STM32 LCD12864 串行通信模式 (从原理让你理解)lcd12864 简介带中文字库的 128X64 是一种具有 4 位 8 位并行 2 线或 3 线串行多种接口方式 内部含有国标一级 二级简体中文字库的点阵图形液晶显示模块 其显示分辨率为 128 64 内置 8192 个 16 16 点汉字 和 128 个 16 8 点 ASCII 字符集 利用该模块灵活的接口方式和简单 方便的操作指令 可构成全中文人机交互图形界面 可以显示 8 4 行 16 16 点阵的汉字 也可完成图形显示 低电压低

    2026年3月19日
    2
  • 姿态传感器mpu6050_六轴陀螺仪原理

    姿态传感器mpu6050_六轴陀螺仪原理目录标题1.前言(闲话)2.陀螺仪及MPU6050模块介绍3.硬件连接4.MPU60505.软件代码————官方自带库6.软件代码————其他代码7.学习补充(代码看不懂的时候可以来看一下)8.效果展示9.参考链接10.完整版代码链接1.前言(闲话)正在准备今年的国赛,打算做一个PID控制题目,于是就选了一个相对比较简单的风力摆,2.陀螺仪及MPU6050模块介绍3.硬件连接4.MPU60505.软件代码————官方自带库6.软件代码————其他代码7.学习补充(代码看不懂的时候可以来看一下

    2025年8月10日
    3
  • mysql数据库备份方法有几种_MySQL几种方法的数据库备份

    mysql数据库备份方法有几种_MySQL几种方法的数据库备份MySQL有几个方法来备份最近博客一直想写点。可是不知道写什么,感觉自己近期的知识没有什么添加,今天想到了一篇能够写的博客。曾经试过依据data目录备份MySQL。可是从来没有成功过。前几天帮助朋友还原MySQL,最终成功的将备份的data目录还原成功了。MySQL数据库算是经常使用的数据库中最好使用的数据库了,对于备份的操作也不例外。所以今天分享一下MySQL数据库的备份的几种方式。方式一:使用…

    2022年5月14日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号