1

Тема: AHK: Получение данных из контрола Internet Explorer_Server

Здравствуйте, есть программа etxt по определению уникальности текста, возможно ли посредством ahk получать данные из этой программы в файл или буфер? Конкретно нужен процент уникальности текста по завершению проверки, программа выводит этот процент в форме которая определяется как:  ClassNN: Internet Explorer_Server2
т.е. как я понял это html страничка во встроенном браузере. Натолкните на мысль в каком напровлении искать решение.

2

Re: AHK: Получение данных из контрола Internet Explorer_Server

http://www.script-coding.com/AutoHotkey/ControlGet.html

http://www.script-coding.com/AutoHotkey … tText.html

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

3

Re: AHK: Получение данных из контрола Internet Explorer_Server

serzh82saratov, так не выйдет. Попробуй таким макаром получить текст из контрола Internet Explorer_Server1 в IE.

metlick, для решения твой задачи нужно знать заголовок окна (или его хэндл), которому принадлежит данный контрол, или хэндл контрола.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

4

Re: AHK: Получение данных из контрола Internet Explorer_Server

teadrinker
Честно говоря изначально задача была не вполне ясна...

ТС
Думаю что непомешает скриншот результата на фоне AU3_Spy.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

5

Re: AHK: Получение данных из контрола Internet Explorer_Server

serzh82saratov пишет:

Честно говоря изначально задача была не вполне ясна...

Насколько я понял, нужно извлечь текст из такого же контрола, как Internet Explorer_Server в IE.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6 (изменено: serzh82saratov, 2012-12-31 02:04:09)

Re: AHK: Получение данных из контрола Internet Explorer_Server

.... или хэндл контрола ....

Ок

ControlGet, OutputVar, Hwnd,, Internet Explorer_Server1, ahk_class IEFrame
MsgBox %OutputVar%

Узнали хэндл контрола, а дальше что с ним делать?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

7

Re: AHK: Получение данных из контрола Internet Explorer_Server

Дальше нужно получить связанный с ним COM-объект IHTMLDocument2 и воспользоваться его интерфейсом.
Для IE так:

ControlGet, OutputVar, Hwnd,, Internet Explorer_Server1, ahk_class IEFrame
if (OutputVar = "")
{
   MsgBox, Контрол не найден!
   return
}

msg := DllCall("RegisterWindowMessage", Str, "WM_HTML_GETOBJECT")
SendMessage, msg,,,, ahk_id %OutputVar%

DllCall("oleacc\ObjectFromLresult", Ptr, ErrorLevel, Ptr, 0, Ptr, 0, PtrP, pdoc)
        
HTMLDocument := ComObjEnwrap(pdoc)
ObjRelease(pdoc)

MsgBox, % HTMLDocument.body.innerText
HTMLDocument := ""

На основе последнего примера отсюда.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8

Re: AHK: Получение данных из контрола Internet Explorer_Server

У меня Explorer_Server1 принадлежит строке поиска на одном из сайтов. Код выше получает текст всей страницы, кроме строки поиска. Или я чего-то недопонял...

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

9

Re: AHK: Получение данных из контрола Internet Explorer_Server

В IE Internet Explorer_Server1 (а не Explorer_Server1) — это поле, в котором отображаются страницы.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

10 (изменено: metlick, 2013-01-02 22:05:44)

Re: AHK: Получение данных из контрола Internet Explorer_Server

Спасибо за помощь, получилось так :


ControlGet, OutputVar, Hwnd,, Internet Explorer_Server2, ahk_class WindowsForms10.Window.8.app.0.378734a
if (OutputVar = "")
{
   MsgBox, Контрол не найден!
   return
}

msg := DllCall("RegisterWindowMessage", Str, "WM_HTML_GETOBJECT")
SendMessage, msg,,,, ahk_id %OutputVar%

DllCall("oleacc\ObjectFromLresult", Ptr, ErrorLevel, Ptr, 0, Ptr, 0, PtrP, pdoc)
        
HTMLDocument := ComObjEnwrap(pdoc)
ObjRelease(pdoc)

Ms := HTMLDocument.body.innerText

FoundPos := RegExMatch(Ms, "Уникальность текста равна(.*)%",istext)

MsgBox, % istext1

11

Re: AHK: Получение данных из контрола Internet Explorer_Server

Попробовал

ControlGet, OutputVar, Hwnd,, SysListView322, ahk_class µTorrent4823DF041B09

и

Error:  No valid COM object!

017: HTMLDocument := ComObjEnwrap(pdoc)
018: ObjRelease(pdoc) 
---> 020: MsgBox,HTMLDocument.body.innerText
021: HTMLDocument := ""
167: ExitApp

Если как в примере пишет то Контрол не найден (ну это понятно).

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

12

Re: AHK: Получение данных из контрола Internet Explorer_Server

serzh82saratov пишет:

Попробовал

А зачем?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

13

Re: AHK: Получение данных из контрола Internet Explorer_Server

teadrinker пишет:
serzh82saratov пишет:

Попробовал

А зачем?

Подумал, что этот код должен получать текст из любых контролов.
Что я неправильно понял?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

14

Re: AHK: Получение данных из контрола Internet Explorer_Server

Нет, только из Internet Explorer_Server.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder