Python+win32gui句柄获取——获取windows应用程序窗口无法复制的信息

本文介绍如何使用Python的win32gui库,通过坐标获取Windows应用程序窗口的句柄,并进一步获取窗口内的信息。教程中提到了两种方法,包括通过句柄获取嵌入数据和使用OCR技术转化图片为文字。适合办公自动化领域的程序员参考学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近接到一个需求就是,获取某个软件点击打开图片文件,先显示一个窗口,接着拿到窗口中的图片的尺寸,是无法复制的。

在这里插入图片描述

需求:抓取到底部窗口的句柄,获取其内容

大家可以跟着我的顺序一起来实现

安装:pip install win32gui

第一步,获取坐标,大致方位就好:

获取坐标的工具官网Snipaste:点我

在这里插入图片描述

第 1 步代码:

pip install win32gui
pos = (1234,764)
hwnd = win32gui.WindowFromPoint(pos)  # 请填写 x 和 y 坐标
print(pos, "下的句柄为:", hwnd)

查看效果:感动!成功了第一步!┭┮﹏┭┮

在这里插入图片描述

第 2 步代码:

通过刚刚获取的句柄,继续获取里面的数据

我写了一个函数,传入刚刚获取的句柄(int类型)

def get_title(hwnd):
    title = win32gui.GetWindowText(hwnd)
    print(f'通过句柄:{hwnd},获取到的,窗口标题:%s' % (title))
    return title
get(hwnd )

查看效果,呜呜感动,居然成功了!

在这里插入图片描述

我写的其实很简单的,直戳重点,但是并不是每一个窗口都能获得

额外的知识点:请点击原文链接,原帖写的很详细

总结复习:

1、通过 坐标 获取到窗口的句柄

2、通过获取到的句柄,再次拿到嵌在窗口的信息

3、其实本文我写了两个办法,还有一个 OCR图片转文字,然后提出到信息,也成功了,有兴趣的可以看看这篇,搭建百度的OCR图片转文字工具

我也是第一次用这个库,感觉很神奇!

希望对大家有帮助

致力于办公自动化的小小程序员一枚

都看到这了,关注+点赞+收藏=不迷路!!

有问题请私聊
### 使用 PyAutoGUI 获取窗口句柄 PyAutoGUI 库主要用于自动化鼠标和键盘操作,并不直接提供获取窗口句柄的功能。为了实现这一目标,通常会结合其他 Windows 特定的库一起使用,比如 `win32gui` 或者 `ctypes`。 对于特定需求——通过 Python 获取窗口句柄并控制它,可以采用如下方法: #### 结合 Win32 API 和 PyAutoGUI 的解决方案 虽然 PyAutoGUI 不支持直接获取窗口句柄,但是可以通过组合使用 `win32gui` 来找到窗口句柄,再利用 PyAutoGUI 进行进一步的操作。下面是一个简单的例子展示如何定位指定名称的应用程序窗口,并移动该窗口的位置[^2]。 ```python import win32gui import pyautogui classname = None # 如果不需要类名匹配则设为None titlename = "计算器" def enum_callback(hwnd, results): if win32gui.IsWindowVisible(hwnd) and titlename in win32gui.GetWindowText(hwnd): rect = win32gui.GetWindowRect(hwnd) x = int((rect[0]+rect[2])/2) y = int((rect[1]+rect[3])/2) pyautogui.moveTo(x,y,duration=1) hwnd = win32gui.EnumWindows(enum_callback, []) if not hwnd: print(f"No window found with title {titlename}") else: print("Found target window.") ``` 此脚本首先遍历所有顶层可见窗口寻找含有给定标题字符串 (`titlename`) 的那个;一旦找到了对应的窗口,则计算其中心位置并将光标移过去模拟点击或其他交互行为。 需要注意的是,上述代码片段仅作为概念验证用途,在实际应用中可能还需要考虑更多细节处理以及异常情况管理等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值