鱼C论坛

 找回密码
 立即注册
查看: 2919|回复: 10

[已解决]python如何读取窗口内容

[复制链接]
发表于 2022-10-12 07:28:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
python如何调用windows api函数(比如GetDlgItemTextA)读取某一个windows窗口的文本内容呢
最佳答案
2022-10-12 14:58:08
不知道你想要操作哪个窗口
我的测试案例  是记事本   
import win32gui,win32con

phd=win32gui.FindWindow("Notepad","*无标题 - 记事本")
pedit=win32gui.FindWindowEx(phd,0,"Edit",None)
len = win32gui.SendMessage(pedit, win32con.WM_GETTEXTLENGTH) +1 #获取edit控件文本长度
buffer = win32gui.PyMakeBuffer(len)
win32gui.SendMessage(pedit, win32con.WM_GETTEXT, len, buffer) #读取文本
address, length = win32gui.PyGetBufferAddressAndLen(buffer[:-1])
text = win32gui.PyGetString(address, length)
print(text)
win32gui.SendMessage(pedit, win32con.WM_SETTEXT, None, "看看能不能设置文本呢") #?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-12 08:57:28 From FishC Mobile | 显示全部楼层
获取窗口标题可以做到,获取整个窗口的文本内容好像不行吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-12 10:08:10 | 显示全部楼层
qq1151985918 发表于 2022-10-12 08:57
获取窗口标题可以做到,获取整个窗口的文本内容好像不行吧?

那比如说只获得登录窗口的用户名内容呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-12 12:40:16 | 显示全部楼层
感觉和这个需求差不多?
不过这个是用C写的
https://fishc.com.cn/forum.php?mod=viewthread&tid=205306
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-12 14:58:08 | 显示全部楼层    本楼为最佳答案   
不知道你想要操作哪个窗口
我的测试案例  是记事本   
import win32gui,win32con

phd=win32gui.FindWindow("Notepad","*无标题 - 记事本")
pedit=win32gui.FindWindowEx(phd,0,"Edit",None)
len = win32gui.SendMessage(pedit, win32con.WM_GETTEXTLENGTH) +1 #获取edit控件文本长度
buffer = win32gui.PyMakeBuffer(len)
win32gui.SendMessage(pedit, win32con.WM_GETTEXT, len, buffer) #读取文本
address, length = win32gui.PyGetBufferAddressAndLen(buffer[:-1])
text = win32gui.PyGetString(address, length)
print(text)
win32gui.SendMessage(pedit, win32con.WM_SETTEXT, None, "看看能不能设置文本呢") #?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-12 18:14:13 | 显示全部楼层
666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-10-13 03:08:45 | 显示全部楼层
wp231957 发表于 2022-10-12 14:58
不知道你想要操作哪个窗口
我的测试案例  是记事本

为啥我输出的pedit是0呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-13 06:47:54 From FishC Mobile | 显示全部楼层
月下孤井 发表于 2022-10-13 03:08
为啥我输出的pedit是0呢

你看一下记事本的标题,空的记事本没有前面的星号,但是你要是在里面输入东西了,又不保存
会有个星号,其实这个标题不输也可以,但是要是有多个记事本同时被打开,就无法精准定位
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-14 07:37:23 | 显示全部楼层
wp231957 发表于 2022-10-13 06:47
你看一下记事本的标题,空的记事本没有前面的星号,但是你要是在里面输入东西了,又不保存
会有个星号, ...

phd是有值的, 只是定位不到pedit
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-14 07:56:59 From FishC Mobile | 显示全部楼层
月下孤井 发表于 2022-10-14 07:37
phd是有值的, 只是定位不到pedit

你是啥操作系统,有没有查一下记事本的编辑框的类名
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-14 10:41:01 | 显示全部楼层
wp231957 发表于 2022-10-14 07:56
你是啥操作系统,有没有查一下记事本的编辑框的类名

是win11的系统,都用spy++查过了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 23:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表