Ingerencja programu w programie?

Witam. Chciałbym się dowiedzieć czy istnieje w ogóle taka możliwość, i czy jest ona dostatecznie prosta. A mianowicie; czy istnieje możliwość napisania programu, który ingerowałby w działanie drugiego programu (drugi program to *.exe). Dla przykładu chciałbym napisać w C++ program, który powiedzmy otwierałby notatnik i poprawiał w nim błędy ortograficzne. (to taki banalny przykład). :wink: Istnieje taka możliwość? I jeśli tak, to na jakiej zasadzie to działa? (istotne jest to, że nie mam kodu źródłowego…).

Tak, istnieje taka możliwość. Pod windows każdy element GUI posiada uchwyt za pomocą którego można się z tym obiektem komunikować. Uzyskując uchwyt do okna programu możesz wysłać wiadomość, która pozwoli Ci poznać obiekty umieszczone na oknie (np. uchwyt do menu, uchwyt do przycisku). Wysyłając wiadomość do przycisku możesz np. zasymulować jego wciśnięcie.

Technikę tą stosują np. PowerGG, niektóre cracki (konkretnie: loadery), programy do testowania UI (frameworki testowe).

Ok, w takim razie jak ta ‘technika się nazywa’? Jak się ją stosuje? Jakieś specjalne oprogramowanie, sposób? Coś więcej na ten temat? Linki? Bo w google niestety nie wiem pod jakimi hasłami czegoś na ten temat szukać.

Szukaj: Uchwyt (Handle) i komunikaty (PostMessage, SendMessage).

Takie zabiegi generalnie odnoszą się do WinApi, najlepiej pod tym hasłem szukaj ciekawych rozwiązań.