Автор Тема: Возможно ли ,Получить содержимое элемента GUI зная только его координаты ?  (Прочитано 2160 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн cdxn [?]

  • Новичок
  • *
  • Сообщений: 2
  • Репутация: 0
    • Награды
как получить текстовое содержимое лейбла  в переменную
если известны только его координаты ,?

Код: AutoIt [Выделить]
GUICtrlCreateLabel("ЭТОТ ТЕСТ НАМ ОЧЕНЬ НУЖЕН", 115, 46, 160, 17)

 

Возможно ли, используя только  известные координаты (например крайние  115 46 или  предполагаемые центральные)получить ТЕКСТ ?
Примечание .Есть решение с помощью перемещения курсора мышки, Есть ли другая альтернатива ?
« Последнее редактирование: Октябрь 29, 2012, 09:24:22 от cdxn »

Русское сообщество AutoIt


Оффлайн Afonichev [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1535
  • Репутация: 408
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Код: AutoIt [Выделить]
#include <WinAPIEx.au3>

$hForm = GUICreate('')
GUICtrlCreateLabel('ЭТОТ ТЕСТ НАМ ОЧЕНЬ НУЖЕН', 15, 46, 200, 17)
GUICtrlCreateLabel('А ЭТОТ НЕ НУЖЕН', 15, 65, 200, 17)
GUISetState()

MsgBox(0, '', GetText($hForm, 15, 46))

While 1
    Switch GUIGetMsg()
        Case -3
            Exit
    EndSwitch
WEnd

Func GetText($hWnd, $iLeft, $iTop)
    Local $Enum = _WinAPI_EnumChildWindows($hWnd)
    For $i = 1 To UBound($Enum) -1
        Local $aPos = ControlGetPos($Enum[$i][0], '', '')
        If (($aPos[0] = $iLeft) And ($aPos[1] = $iTop)) Then
            Return GUICtrlRead(_WinAPI_GetDlgCtrlID($Enum[$i][0]))
        EndIf
    Next
    Return SetError(1, 0, '')
EndFunc
 


И вообще... управляющие элементы находятся в своём окне или чужом? Если в своем, то почему не так?

Код: AutoIt [Выделить]
...
$iLabel_1 = GUICtrlCreateLabel('ЭТОТ ТЕСТ НАМ ОЧЕНЬ НУЖЕН', 15, 46, 200, 17)
MsgBox(0, '', GUICtrlRead($iLabel_1))
...
 

« Последнее редактирование: Октябрь 09, 2012, 12:08:42 от Viktor1703 »

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 4102
  • Репутация: 1089
    • Награды
  • Версия AutoIt: 3.3.14.0
cdxn  [?]
Цитировать
используя только  известные координаты (например крайние  115 46) получить ТЕКСТ
Код: AutoIt [Выделить]
ControlGetText("Title", "", "[X:115;Y:46]")


Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
15 Ответов
6706 Просмотров
Последний ответ Январь 30, 2012, 01:55:30
от madmasles
6 Ответов
3967 Просмотров
Последний ответ Октябрь 17, 2012, 08:53:09
от PoleschenkoKV
1 Ответов
1886 Просмотров
Последний ответ Февраль 19, 2013, 20:10:52
от BIOS
2 Ответов
2989 Просмотров
Последний ответ Август 24, 2013, 00:05:31
от WR-e-D
2 Ответов
1389 Просмотров
Последний ответ Август 11, 2015, 16:01:33
от Kasper
3 Ответов
1042 Просмотров
Последний ответ Август 27, 2016, 00:30:48
от InnI
4 Ответов
1655 Просмотров
Последний ответ Январь 12, 2017, 06:50:19
от Dessan
1 Ответов
631 Просмотров
Последний ответ Апрель 07, 2017, 16:15:33
от joiner
5 Ответов
1002 Просмотров
Последний ответ Октябрь 11, 2017, 00:37:38
от Garrett
2 Ответов
413 Просмотров
Последний ответ Октябрь 30, 2018, 22:06:18
от Vovsla