hlzxcjx 发表于 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
隐藏窗口后就不能获得其文本了,如何解决?

Ziya 发表于 2010-7-28 10:30:25

WinGetText
--------------------------------------------------------------------------------

获取指定窗口中的文本.


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




参数

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



返回值

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



注意/说明

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


这个试过了么?

hlzxcjx 发表于 2010-7-28 10:43:23

谢楼上!
是的,帮助文件就在眼皮底下,怎么就不多看一眼呢?

menfan1 发表于 2010-7-27 19:57:46

本函数最多能获得 64KB 的窗口文本.即使目标窗口被最小化 WinGetText 仍能正常工作,若要获得隐藏窗口的文本请先设置;AutoItSetOption("WinDetectHiddenText", 1)
若同时有多个窗口符合匹配条件则程序将获取最近被激活的窗口的文本.
使用 WinGetText("") 可获得当前激活窗口的文本.
--学习一下
页: [1]
查看完整版本: 如何获得第三方软件隐藏窗口的文本?[已解决]