Witam,
Pobieram ClassName, ControlName i Caption innej aplikacji i dodaję do TListView.
ClassName | ControlName | Caption |
---|---|---|
TButton | btnSzukaj | Szukaj |
Uchwyt tutaj jest mi nie potrzebny i nie przydatny z tego względu, że po ponownym uruchomieniu aplikacji jej uchwyty się zmienią.
Teraz chciałbym np. ustawić kursor na tym Buttonie, tylko pytanie: Jak mam znaleźć ten przycisk?
Jeśli miałbym użyć FindWindowEx to musiałbym znać strukturę drzewa parenta na którym jest przycisk i pobierać do niej po kolei uchwyty, a tego nie będę znał.
Przychodzi mi na myśl jeden sposób - pobrać współrzędne poprzez
ReadProcessMemory
ale z tym podejrzewam, że miałbym sporo zabawy i nie jestem pewny czy nie ma prostszego rozwiązania.
Słyszałem trochę o EnumChildWindows ale nie za bardzo wiem czy mogę w tym przypadku z tego skorzystać, bo co w przypadku gdy będę miał 3x button o tej samej nazwie? Jego klasa to TButton, caption np. 'Szukaj' dlatego mam też ControlName ale nie mam pojęcia jak wszukać go w obcej aplikacji.
Założeniem programu jest zautomatyzowanie pewnych czynności takich jak np. Kliknięcie buttona, wpisanie tekstu w edit obcej aplikacji, w razie komunikatu kliknąć odpowiedni przycisk. Wszystko na podstawie wczesniej nagranego schematu wczytanego do TListView.
Odnajdywanie okna realizowane jest na zasadzie FindWindow('nazwa okna'), następnie odczytywana jest wcześniej zapisana pozycja kursora nad danym obiektem i wywoływane odpowiednie zdarzenie SendMessage, lub MouseClick, z tym, że wszystko się zacznie walić jeśli w programie zmienimy położenie przycisku... Dlatego chciałbym znaleźć daną kontrolkę i pobrać jej współrzędne aby później ustawić na niej kursor.
Liczę na pomoc i ewentualnie gotowca w miarę możliwości.
Z góry dziękuję Olesiowi za pomoc bo wie sporo na ten temat i z teorii i z praktyki oraz reszcie, która będzie w stanie mi pomóc.