找回密码
 加入
搜索
查看: 1973|回复: 3

[GUI管理] 如何获得第三方软件隐藏窗口的文本?[已解决]

[复制链接]
发表于 2010-7-28 10:26:15 | 显示全部楼层 |阅读模式
本帖最后由 hlzxcjx 于 2010-7-28 11:00 编辑

如下代码可获得显示窗口的文本,但不能获得隐藏窗口的文本:
$text = WinGetText("窗口标题", "")
          MsgBox(0, "获得的文本:", $text)
假如第三方软件如下:
#include <GUIConstants.au3>

#Region ### START Koda GUI section ### Form=
$AForm1 = GUICreate("窗口标题",633, 447, 193, 125)
$Button1 = GUICtrlCreateButton("隐藏窗口", 224, 168, 169, 65, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                         Exit
                                Case $Button1
                         WinSetState ( "窗口标题", "", @SW_HIDE )
        EndSwitch
WEnd
隐藏窗口后就不能获得其文本了,如何解决?

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-7-28 10:30:25 | 显示全部楼层
WinGetText
--------------------------------------------------------------------------------

获取指定窗口中的文本.


WinGetText ( "窗口标题" [, "窗口文本"] )




参数

窗口标题 目标窗口标题.参考标题特殊定义
窗口文本 [可选参数] 指定窗口包含的文本.



返回值

成功: 返回指定窗口里面包含的文本.
失败: 返回0(如果没有匹配的标题).



注意/说明

本函数最多能获得 64KB 的窗口文本.即使目标窗口被最小化 WinGetText 仍能正常工作,若要获得隐藏窗口的文本请先设置;AutoItSetOption("WinDetectHiddenText", 1)
若同时有多个窗口符合匹配条件则程序将获取最近被激活的窗口的文本.
使用 WinGetText("[active]") 可获得当前激活窗口的文本.


这个试过了么?

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2010-7-28 10:43:23 | 显示全部楼层
谢楼上!
是的,帮助文件就在眼皮底下,怎么就不多看一眼呢?
发表于 2010-7-27 19:57:46 | 显示全部楼层
本函数最多能获得 64KB 的窗口文本.即使目标窗口被最小化 WinGetText 仍能正常工作,若要获得隐藏窗口的文本请先设置;AutoItSetOption("WinDetectHiddenText", 1)
若同时有多个窗口符合匹配条件则程序将获取最近被激活的窗口的文本.
使用 WinGetText("[active]") 可获得当前激活窗口的文本.
--学习一下
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-9 01:15 , Processed in 0.096179 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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