Как получить текстовое содержимое из окна

У меня есть окно, которое отображает книгу. В двух меньших полях ниже есть номер страницы и объем информации о книге, которая открыта. Я могу получить эту информацию легко следующим образом:

ControlGetText, volume, ThunderRT6TextBox3      
ControlGetText, page, ThunderRT6TextBox2

Затем мой скрипт заставляет мой указатель мыши перемещаться к кнопке. Он щелкает по нему, и открывается новое окно. В этом окне есть больше текстовой информации, связанной с книгой, такой как издатель, имя автора, издание и т. Д. Я хочу получить эту информацию. Но когда я пробую ту же стратегию, она не работает, например:

ControlGetText, data, RichTextWndClass3

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

Я пробовал много других вариантов, таких как:SendEvent ^a Что эквивалентно control + a, которое должно выбирать все. Я попытался поставить паузы, но это никогда не выберет. Я попробовал скрипт, чтобы дважды щелкнуть это окно вручную. Это работает, и одно слово выбирается вот так. Даже тогда SendEvent ^ a ничего не делает. Однако, если я сделаю SendEvent ^ {insert}, то выбранное слово будет скопировано в мой буфер обмена.

Я экспериментировал с большим количеством комбинаций:

ControlSend ahk_class ThunderRT6FormDC, ^a
ControlSend ClassNN RichTextWndClass3, ^a

а также

ControlSend ThunderRT6FormDC, ^a
ControlSend RichTextWndClass3, ^a

Никто из них не работает. Весь выбор текста не проявляется в этом окне.

Единственная оставшаяся альтернатива для меня - заставить скрипт делать выделение всего текста вручную. Однако это медленно и очень смешно. Кроме того, в Window Spy под разделом: Текст видимого окна, текст есть все. Я перепробовал много других возможностей, и я нахожусь в конце своего ума. Как мне собрать этот текст напрямую?

РЕДАКТИРОВАТЬ - Текст окна отображается в Window Spy под заголовком: TitleMatchMode = медленный видимый текст, НЕ заголовок: видимый текст окна

РЕДАКТИРОВАТЬ-- Я говорил с вами о двух окнах. Первый, в котором я получаю объем и номер страницы. Второй, который должен появиться при нажатии кнопки. Оба эти окна имеют одно и то же имя класса: ahk_class ThunderRT6MDIForm Это проблематично?

РЕДАКТИРОВАТЬ-- Вывод заключается в том, что я не могу получить этот текст из второго окна напрямую. Таким образом, я выбрал слабый, скучный ручной метод. Я посылаю {смещение вниз} в активное окно, а затем делаю щелчок внизу окна. Затем я сохраняю выбор в буфер обмена. Это работает, но это просто глупо. Пожалуйста, помогите мне найти более элегантное решение, чем это.

Это код, который я использовал:

ControlGetText, volume, ThunderRT6TextBox3 

ControlGetText, page, ThunderRT6TextBox2 

Click, 110, 70 

sleep 1000

SendInput {shift down}

click 29, 490

SendInput {shift up}

sleep 1000

SendInput, ^{ins} 

sleep 100

Забавно отметить, что настоящие клавиши клавиатуры, такие как bc, невозможны. Но я могу послать ctrl, shift и ins. Как я отмечал выше, ^ c также давал проблемы, как ^ a давал проблемы.

Ответы на вопрос(2)

Ваш ответ на вопрос