Что нового

[Окна, Диалоги] Получение текста из окна чата (IBM Sametime) + автоответ

MON@H Rasta

[Ganj@ $moker]
Сообщения
12
Репутация
0
Задача - прочитать текст из окна чата IBM Sametime и в зависимости от этого текста отправить сообщение в ответ. Такой-себе автоответчик :smile:
Вторая часть задачи реализована, с первой возникли проблемы...
Данный код открывает окно чата и отправляет указанный текст:
Код:
$hWinHandle = HWnd('0x00000000014A0ACA')
WinActivate($hWinHandle)
$txt = 'Этот текст я тебе автоматически прислал!!!'&@CR
$hChatTxtWin = ControlGetHandle($hWinHandle, "", "[CLASS:SWT_Window0; INSTANCE:64]")
ControlSend($hWinHandle, "", $hChatTxtWin, $txt)


Прочитать же текст никак не получается. Информация о элементе окна, в котором отображаются сообщения:
Код:
Class:	MozillaWindowClass
Instance:	1
ClassnameNN:	MozillaWindowClass1
Name:	
Advanced (Class):	[CLASS:MozillaWindowClass; INSTANCE:1]
ID:	
Text:	
Position:	0, 192
Size:	1920, 650
ControlClick Coords:	902, 456
Style:	0x56000000
ExStyle:	0x00000000
Handle:	0x00000000026516F4

Выглядит окно вот так (см. вложенный файл).
История сообщений хранится как *.html и очень похоже на то, что в окне чата фактически отображается html-файл (скрин открытого файла истории прилагаю).

Вопрос в том, можно ли каким-то образом работать с объектом окна, как с браузером IE ?
Т.е. как я понимаю, существует уйма функций _IE* при помощи которых я могу распарсить html код и зная структуру, которая используется для отображения чата, получить текст сообщений. Всё это применимо к окну браузера IE, но ведь у меня это объект другого окна...
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
Код:
; попробуй
_IEAttach()
; а потом стандартными функциями
 
Автор
M

MON@H Rasta

[Ganj@ $moker]
Сообщения
12
Репутация
0
Код:
#include <IE.au3> 

If WinExists('[REGEXPTITLE:[A-Za-z ]/.+/.+/.+/.+\[.+:.+:.+:.+\]]') Then
	$hWinChat = WinGetHandle('[REGEXPTITLE:[A-Za-z ]/.+/.+/.+/.+\[.+:.+:.+:.+\]]')
	WinActivate($hWinChat)
	WinWaitActive($hWinChat)
	$hWinChatVisibleText = ControlGetHandle($hWinChat, "", '[CLASS:MozillaWindowClass]')
	$vTMP = _IEAttach($hWinChatVisibleText)
	$vHTML = _IEBodyReadHTML ($vTMP)
	MsgBox(0, "", $vHTML)
EndIf


Не работает :(
Точнее, скрипт возвращяет мне "0" в месседжбокс...
Всё, что до "$vTMP" проверил - работает, хэндлы читает, всё ок.
Может есть какой-то ещё способ попробовать "получить текст" оттуда?
 
Верх