找回密码
 加入
搜索
查看: 5437|回复: 9

[系统综合] 【已解决】获取指定窗口控件文本。

  [复制链接]
发表于 2011-12-16 02:33:35 | 显示全部楼层 |阅读模式
本帖最后由 xiaogou5852 于 2011-12-16 13:13 编辑

用ControlGetText,能准确的获取到指定的窗口控件文本。

但是,如果同时出现两个一样的窗口获取就有些乱了。

比如:
        $GetText = ControlGetText("快播下载器","","[CLASS:Static; INSTANCE:5]") 
        MsgBox(64,"",$GetText)
能准确获取到,如图



当有新窗口的时候,获取到的就是新窗口的文本,如图



可能焦点在新窗口上,所以获取到的是新窗口的文本信息。

请问有什么办法能两个窗口上的信息都获取到呀。

弄了一个晚上了。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2011-12-16 08:44:10 | 显示全部楼层
先枚举相关窗口, 后分别获取它们的文本呢?
发表于 2011-12-16 09:17:25 | 显示全部楼层
回复 1# xiaogou5852

$rList = WinList("快播下载器")
For $i = 1 To $rList[0][0]
        $GetText = ControlGetText($rList[$i][0],"","[CLASS:Static; INSTANCE:5]") 
        MsgBox(64,"",$GetText)
Next
MsgBox(64,"","已经全部找到")
 楼主| 发表于 2011-12-16 13:12:34 | 显示全部楼层
本帖最后由 xiaogou5852 于 2011-12-16 13:45 编辑

回复 3# Hen5ei


    OK.非常感谢呀。

  如果是实时读取应该怎样写呀。
发表于 2011-12-16 13:21:59 | 显示全部楼层
咋个做的奥。给能把源码放出来奥
 楼主| 发表于 2011-12-16 15:30:01 | 显示全部楼层
回复 3# Hen5ei
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#Include <GuiListView.au3>
Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 387, 221, 345, 491)
GUISetOnEvent($GUI_EVENT_CLOSE,"_Exit")
$ListView1 = GUICtrlCreateListView("控件信息", 16, 16, 354, 158)
_GUICtrlListView_SetExtendedListViewStyle($ListView1, BitOR($LVS_SORTASCENDING,$LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES,$LVS_EX_HEADERDRAGDROP,$LVS_EDITLABELS));添加网格
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 320)
$Button1 = GUICtrlCreateButton("Start", 156, 182, 75, 25)
GUICtrlSetOnEvent($Button1,"Start")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        Sleep(100)
WEnd

Func Start()        
        While 1
                $rList = WinList("快播下载器")
                GUICtrlSendMsg($listview1, 4105, 0, 0)
                For $i = 1 To $rList[0][0]
                        $GetText = ControlGetText($rList[$i][0],"","[CLASS:Static; INSTANCE:5]")
                        GUICtrlCreateListViewItem($GetText,$ListView1)
                Next
                Sleep(1000)
        WEnd
EndFunc

Func _Exit()
        Exit
EndFunc
这样基本能实时获取,但是执行起来效率貌似有些低呀。

还有什么方法呀。
发表于 2011-12-16 16:33:38 | 显示全部楼层
回复 1# xiaogou5852

试试这个代码
   
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#region ### START Koda GUI section ### Form=
Global $rList = WinList("快播下载器"),$rLabel[3]
$Form1 = GUICreate("实时显示?", 380, 200, 192, 154)

GUICtrlCreateGroup(" 这是第一个实例 ", 10, 10, 360, 70)
$rLabel[1] = GUICtrlCreateLabel("",20,30,340,40)
GUICtrlCreateGroup("", -99, -99, 1, 1)

GUICtrlCreateGroup(" 这是第二个实例 ", 10, 90, 360, 70)
$rLabel[2] = GUICtrlCreateLabel("",20,110,340,40)
GUICtrlCreateGroup("", -99, -99, 1, 1)

$rStart = GUICtrlCreateButton("捕捉消息", 10, 165, 100, 30)
$rStop = GUICtrlCreateButton("停止捕捉", 140, 165, 100, 30)
$rQuit = GUICtrlCreateButton("退出", 270, 165, 100, 30)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE,$rQuit
                        Exit
                Case $rStart
                        AdlibRegister("_MyAdlib")
                Case $rStop
                        AdlibUnRegister("_MyAdlib")
        EndSwitch
WEnd

Func _MyAdlib()
        For $i = 1 To $rList[0][0]
                $GetText = ControlGetText($rList[$i][0], "", "[CLASS:Static; INSTANCE:5]")
                GUICtrlSetData($rLabel[$i],$GetText)
        Next
EndFunc   ;==>_MyAdlib
发表于 2011-12-16 16:35:56 | 显示全部楼层
回复 6# xiaogou5852


    可不可以将你的那个什么 快播下载器,给我。我好测试一下
发表于 2011-12-16 17:52:31 | 显示全部楼层
本帖最后由 绿色风 于 2011-12-16 18:13 编辑

回复 8# Hen5ei


主用的是增强版的,有广告。老版本的没有广告。
游客,如果您要查看本帖隐藏内容请回复

我另开一贴好了
传 送 门
发表于 2011-12-16 21:31:12 | 显示全部楼层
学习围观一下!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-22 23:27 , Processed in 0.081698 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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