Jak uzyskać zawartość tekstową z okna

Mam okno, które wyświetla książkę. W dwóch mniejszych polach znajduje się numer strony i informacje o woluminie otwartej książki. Mogę łatwo uzyskać te informacje w następujący sposób:

ControlGetText, volume, ThunderRT6TextBox3      
ControlGetText, page, ThunderRT6TextBox2

Następnie mój skrypt powoduje, że wskaźnik myszy przesuwa się do przycisku. Klika i otwiera się nowe okno. W tym oknie jest więcej informacji tekstowych związanych z książką, takich jak wydawca, autor nazwiska, wydanie itp. Chcę pobrać te informacje. Ale kiedy próbuję tej samej strategii, nie działa, np .:

ControlGetText, data, RichTextWndClass3

Jedyną różnicą między tymi dwoma przypadkami jest to, że te dwa małe pola są edytowalne, można wprowadzić tekst, podczas gdy to okno jest statyczne.

Próbowałem wielu innych opcji, takich jak:SendEvent ^a Co jest równoważne z kontrolą + a, która powinna wybierać wszystko. Próbowałem wstawiać pauzy, ale nigdy nie wybrałbym. Próbowałem skryptu, aby ręcznie kliknąć dwukrotnie to okno. To działa i jedno słowo jest wybierane w ten sposób. Nawet wtedy SendEvent ^ a nic nie robi. Jeśli jednak wykonam SendEvent ^ {insert}, to wybrane słowo zostanie skopiowane do mojego schowka.

Eksperymentowałem z większą liczbą kombinacji:

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

i

ControlSend ThunderRT6FormDC, ^a
ControlSend RichTextWndClass3, ^a

Żadne z nich nie działa. Cały wybór tekstu nie pojawia się w tym oknie.

Jedyną alternatywą dla mnie jest sprawienie, aby skrypt dokonał ręcznego wyboru całego tekstu. Jest to jednak powolne i bardzo śmieszne. Ponadto w Window Spy w sekcji: Widoczny tekst okna, tekst jest tam. Próbowałem wielu innych możliwości i jestem u kresu rozumu. Jak mam bezpośrednio zebrać ten tekst?

EDYCJA-- Tekst okna pojawia się w oknie Szpieg pod nagłówkiem: TitleMatchMode = wolny widoczny tekst, NIE nagłówek: Widoczny tekst okna

EDIT-- Rozmawiałem z tobą o dwóch oknach. Pierwszy, w którym dostaję objętość i numer strony. Drugi, który musi się wyskoczyć, naciskając przycisk. Oba te okna mają tę samą nazwę klasy: ahk_class ThunderRT6MDIForm Czy to w jakiś sposób problematyczne?

EDYCJA - Wniosek jest taki, że nie mogę bezpośrednio pobrać tego tekstu z drugiego okna. Jako taki zdecydowałem się na kulawą, nudną metodę ręczną. Wysyłam {shift down} do aktywnego okna, a następnie klikam na dole okna. Następnie zapisuję wybór w moim schowku. To działa, ale jest po prostu głupie. Pomóż mi znaleźć bardziej eleganckie rozwiązanie niż to.

To jest kod, którego użyłem:

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

Zabawne jest to, że prawdziwe klawisze klawiatury, takie jak a b c, nie są możliwe. Ale mogę wysłać ctrl, shift i ins. Jak zauważyłem powyżej, ^ c także dawał problemy, jak ^ dawał problemy.

questionAnswers(2)

yourAnswerToTheQuestion