Przechwytywanie zdarzeń aplikacji - pisanie nakładki

0

Piszę nakładkę na aplikację. Najważniejsze linijki kodu:

//Uruchom aplikację
CreateProcessA("aplikacja.exe",NULL,NULL,NULL,true,NULL,NULL,NULL,&s,&p);

//Znajdź okno, bo znamy tytuł
HWND wnd = FindWindowA(NULL, "Tytuł okna");

//Znajdź przycisk
HWND btn = FindWindowExA(wnd, 0, "TButton", "Napis na przycisku");

//Naciskamy przycisk
SendMessage(btn, BM_CLICK, 0 , 0);

//Znajdujemy pierwszą z kolei listę wyboru
HWND list = FindWindowExA(wnd, 0, "TComboBox", NULL);

//Zaznaczamy pozycję nr 12
SendMessage(list, CB_SETCURSEL, 11,1);

//Akceptujemy zaznaczenie - w niektórych przypadkach potrzeba poniższej linijki
SendMessage(list, WM_COMMAND, MAKEWPARAM(0, CBN_SELCHANGE), (LPARAM)list);

//Dodajemy nową kontrolkę - tutaj przycisk
HWND nowy = CreateWindowEx(0,WC_BUTTON,"Przycisk",WS_CHILD|WS_VISIBLE,20,20,200,70,wnd,(HMENU)1,NULL,0);

To wszystko można osiągnąć bez mechanizmu uchwytów za pomocą funkcji WinAPI i komunikatów. Teraz chcę przechwycić zdarzenia z okien aplikacji. Czy tu już trzeba stosować uchwyty, czy istnieją inne metody?

Jakie znacie sposoby, aby:

  1. Przechwycić naciśnięcia klawiszy w aplikacji
  2. Przechwycić kliknięcia przycisków, wybór listy, innych kontrolek
  3. Przechwycić kliknięcia kontrolek utworzonych przez nakładkę
  4. Podpiąć własną funkcję pod wybrane zdarzenia, dodać funkcję zwrotną lub przejąć kontrolę nad zdarzeniami
  5. Dostać się do zmiennych globalnych i wywołać funkcje utworzone przez aplikację
0

Szukaj w internecie pod window subclassing.

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