Что нового

Нет данных в Basic Control Info и не получить текст окна.

PACHOM

Новичок
Сообщения
99
Репутация
0
Здравствуйте!

Есть на работе приложение, которые открывается в Internet Explorer. Мне хотелось бы в форму, отображаемую в этом окне, записать данные, а то руками долго очень.
Данные про это окно выдаются не все: в "Basic Control Info" пусто. Единственное что получается получить, так это класс самого окна - "Internet Explorer_Server"
Есть способ работать с такими окнами - http://autoit-script.ru/index.php/topic,5157.0.html.
Но при запуске скрипта выдаётся ошибка ... Может есть ещё что-нибудь для таких случаев - функции ... методы :smile:

ПС: я пробовал с помощью
Код:
_IEGetObjServer($a_ECW)
получить данные из аналогичного приложения (чат Lync) и всё получилось, но в этом случае был известен Class отображаемый в "Basic Control Info".
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Автор
P

PACHOM

Новичок
Сообщения
99
Репутация
0
Здравствуйте!

Программа Aldata Solution (так называемый G.O.L.D).
Скрипт в момент подключения выдаёт ошибку.
Для получения кода страницы использую скрипт:
Код:
#Include <WinAPIEx.au3>
#include <IE.au3>

WinActivate("G.O.L.D")
$hWnd = WinGetHandle("G.O.L.D")
$aECW = _WinAPI_EnumChildWindows($hWnd) 
$oIE = _IEGetObjServer($aECW)
If @error Then Exit

; Далее работаем как с обычным объектом.
; Все функции из IE.au3 UDF будут благополучно работать :)

ConsoleWrite(_IEDocReadHTML($oIE))

Func _IEGetObjServer($a_ECW)

    Local $o_IES
    If Not IsArray($a_ECW) Then _
        Return SetError(2, 0, 0)
    For $i = 1 To $a_ECW[0][0]
        If $a_ECW[$i][1] = "Internet Explorer_Server" Then
            $o_IES = __IEControlGetObjFromHWND($a_ECW[$i][0])
            If IsObj($o_IES)Then
                Return SetError(0, 0, $o_IES)
            EndIf
        EndIf
    Next
    Return SetError(1, 0, 0)
EndFunc ;==>_IEGetObjServer
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Код:
#Include <WinAPIEx.au3>
#Include <Array.au3>

WinActivate("G.O.L.D")
$hWnd = WinGetHandle("G.O.L.D")
$aECW = _WinAPI_EnumChildWindows($hWnd)
If Not IsArray($aECW) Then
	ConsoleWrite('--> WinAPIEx.au3 ERROR ('& _WinAPI_GetLastError() & ') from function _WinAPI_EnumChildWindows: '& _WinAPI_GetLastErrorMessage())
EndIf
_ArrayDisplay($aECW)

Что показывает этот код?
 
Автор
P

PACHOM

Новичок
Сообщения
99
Репутация
0
К сожалению :shok:ops: я смогу ответить только 14 вечером: у меня график такой.

ПС: спасибо что уделяете время. :gathering:
 
Автор
P

PACHOM

Новичок
Сообщения
99
Репутация
0
Попробовал на работе - ошибок не выдает, но и массив не выводится на экран :(
 
Автор
P

PACHOM

Новичок
Сообщения
99
Репутация
0
Данная функция
Код:
_ArrayDisplay($aECW)
вообще не появляется :(
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Screenshot окна программы в момент работы можете выложить?
P.S. При активном окне программы Alt+PrintScreen
 
Автор
P

PACHOM

Новичок
Сообщения
99
Репутация
0
Есть ли возможность выслать фото лично Вам на почту, чтобы ко мне никто на работе не придрался?
 
Автор
P

PACHOM

Новичок
Сообщения
99
Репутация
0
Вот высылаю
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Так попробуйте..
Код:
#Include <WinAPIEx.au3>
#Include <Array.au3>

$sTitle = '[REGEXPTITLE:G.O.L.D]'
WinActivate($sTitle)
$hWnd = WinGetHandle($sTitle)
$aECW = _WinAPI_EnumChildWindows($hWnd)
If @error Then
    ConsoleWrite('--> WinAPIEx.au3 ERROR ('& _WinAPI_GetLastError() & ') from function _WinAPI_EnumChildWindows: '& _WinAPI_GetLastErrorMessage())
	Exit
EndIf
_ArrayDisplay($aECW)
 
Автор
P

PACHOM

Новичок
Сообщения
99
Репутация
0
Нет ничего... все как в первый раз :(
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Окно вообще находиться, активируется?
 
Автор
P

PACHOM

Новичок
Сообщения
99
Репутация
0
Да, окно находится и активируется если запускать не правой кнопкой мыши по скрипту, а через Run Script.exe
 
Автор
P

PACHOM

Новичок
Сообщения
99
Репутация
0
Я заметил что при направлении сочетания клавиш данной программе, то они все преобразуются в верхний регистр ... может быть это важно ... А вообще сочетания клавиш не проходят ...
При загрузке используются расширения jar.
 
Верх