Borland C++ Builder 6, Uchwyt okna znając tylko część nazwy.

0

Witam
Staram się pobrać uchwyt okna aplikacji, tylko, że niestety nazwa się zmienia tzn. "Coś tam XXX" część "Coś tam" jest cały czas stała a "XXX" się zmienia. Próbowałem w FindWindow() wpisać tylko początek, ale nie da rady.
Pozdrawiam,
Adrian

0

Jeżeli chcesz główny uchwyt aplikacji to spróbuj:

Application->Handle
0

właściwie, to jest jak by okno potomne aplikacji, tyle, że ona otwiera je jako niezależne..., można je złapać jakoś po klasie? Nazwę klasy pobrałem z programu WinExplorer, tylko z tego co czytałem trzeba ją najpierw zarejestrować, ale z tym nie mogę sobie poradzić.

0

EnumWindows lub ewentualnie GetWindow (GW_HWNDFIRST a później w pętli GW_HWNDNEXT) no i za każdym razem za pomocą GetWindowText pobierasz tekst okna jeżeli tekst okna zawiera szukany (funkcja Pos) to wyskok z pętli i masz uchwyt okna.

0

Poradziłem już sobie trochę inaczej i chyba prościej..:)
Okno które chce złapać należy do tej samej klasy co inne z tej samej aplikacji, jednak zawsze otwiera się ono jako drugie więc jest "Bardziej na wierzchu", więc zarejestrowałem klasę i zrobiłem do niej uchwyt.

ATOM RegisterClass( const WNDCLASS *XXX) ;
HWND a;
a=FindWindow("XXX",NULL);

Nie mniej jednak dziękuję wszystkim za pomoc.

0

Ewentualnie jak by było coś nie tak to mogę zawsze dodać warunek, że okno należy do klasy XXX ale nazwa różni się od nazwy pierwszego okna.

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