Listowanie komponentow zewnętrznej aplikacji

dział ogólny

Listowanie komponentow zewnętrznej aplikacji

Nowy postprzez Mironas » czwartek, 25 lipca 2013, 18:44

Czy da się jakoś wylistować okna (TForm) i znajdujące się na nich komponenty VCL z zewnętrznej aplikacji?
Najlepiej gdyby się dało podpiąć pod obiekt Application zewnętrznego programu to dalej już było by łatwo.

Potrzebuję tego do wygenerowania listy okien i komponentów dla pliku tłumaczenia. Z wewnątrz aplikacji to żaden problem, ale ponieważ chciałbym zastosować ten sam mechanizm dla różnych programów to pomyślałem, że można by napisać program który by generował taką listę dla dowolnego (wskazanego) programu.
Avatar użytkownika
Mironas
Programista I
Programista I
 
Posty: 427
Dołączył(a): poniedziałek, 2 stycznia 2012, 19:02
Podziękował : 17
Otrzymał podziękowań: 61
System operacyjny: Windows 10
Kompilator: C++Builder 10.3 Rio
TMS Components Pack
Gadu Gadu: 0
    Windows XPChrome

Re: Listowanie komponentow zewnętrznej aplikacji

Nowy postprzez polymorphism » czwartek, 25 lipca 2013, 21:53

Jedyne co możesz z zewnątrz, to wylistowanie uchwytów do okien, z nich nie wyciągniesz instancji klas VCL.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Listowanie komponentow zewnętrznej aplikacji

Nowy postprzez Cyfrowy Baron » piątek, 26 lipca 2013, 00:38

Sam kiedyś tego próbowałem, nawet poruszałem ten temat na tym forum (HWD to TWinControl) i niestety nic nie dało się z tym zrobić. Z tym, że komponenty powinno dać się wyliczyć, gdyż są programy, które to robią. Powinno udać się również pobrać uchwyt do takich komponentów i wysłać do nich komunikat, ale nie da się pobrać właściwości tego komponentu.

Uchwyt do okna pobieramy za pomocą funkcji FindWindow, a uchwyt do komponentu w oknie za pomocą FindWindowEx - czytaj tutaj.

Nie mam pomysłu jednak na to jak wyliczyć komponenty, bo z uchwytem zwróconym przez FindWindow niewiele da się w tej kwestii zrobić. Może za pomocą funkcji GetObject, ale nie wiem jak jej użyć, bo w pliku pomocy nic na jej temat nie ma.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Listowanie komponentow zewnętrznej aplikacji

Nowy postprzez Mironas » piątek, 26 lipca 2013, 10:25

Trudno.
Będę więc musiał umieszczać taki generator wewnątrz każdej aplikacji którą będę chciał tłumaczyć. Ewentualnie aby nie zwiększać EXE-ka zrobię to w postaci biblioteki DLL podpinanej do programu.
Dzięki za informacje.
Avatar użytkownika
Mironas
Programista I
Programista I
 
Posty: 427
Dołączył(a): poniedziałek, 2 stycznia 2012, 19:02
Podziękował : 17
Otrzymał podziękowań: 61
System operacyjny: Windows 10
Kompilator: C++Builder 10.3 Rio
TMS Components Pack
Gadu Gadu: 0
    Windows XPChrome


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 31 gości

cron