HWND, FindWindow, SendMessage, Get... No i schody.

0

Witam, mam wielki dylemat i mimo, że od paru dni staram się wpaść na rozwiązanie to nie wiem o co się zaczepić. Zastanawiam się jak uzyskać pewne informacje z zewnętrznego programu. Czyli mowa o HWND, FindWindow, SendMessage itd. Mam nadzieje, że jasno przedstawię mój problem. Postaram się oprzeć go na prostych przykładach.

Pierwsze zagadnienie to uchwyt do okna i pobranie informacji.

HWND a;
// a = FindWindow(klasa, text);
a = FindWindow("Notepad", 0);

Powyższym kodem chwycę notatnik przez klasę Notepad. Mogę również zrobić to w sposób:

…
a = FindWindow("Notepad", „Bez tytułu — Notatnik”);

Tylko właśnie o ten tytuł mi chodzi. W jaki sposób odczytać drugą wartość „Text” jeśli znam tylko nazwę klasy? Chciałbym chwycić klasę Notepad, następnie do komponentu Label pobrać wartość „Text”, którego nie znam przy pobieraniu klasy.

Druga sprawa to pobieranie informacji o komponencie. Tu dla przykładu chciałbym uzyskać informację czy komponent jest włączony. Odniosę się do klasy Edit w notatniku i wyślę polecenie WM_ENABLE, aby wyłączyć komponent.

...
HWND b;
b = FindWindowEx(a, 0, "Edit", 0);
 SendMessage( b, WM_ENABLE, 0, 0 );

No i działa, tylko ja chciałbym pobrać informacje, wysłać zapytanie WM_ENABLE czy komponent jest włączony. Jak to zrobić? Jakiej formy Get użyć. Proszę o pomoc.

0

GetWindowText(hwnd, buffor, maxsize);

1 użytkowników online, w tym zalogowanych: 0, gości: 1