[C++] "hook" na uchwyt aplikacji

0

Główne założenie hook'ów to globalne przechwytywanie komunikatów co może strasznie zamulić system. Więc dlatego wpadłem na pomysł [green] żeby przechwytywać komunikaty z konkretnego okna (w sumie tylko to potrzebuję). Chodzi o to, aby po pobraniu uchwytu okna, ustawić go jako "aktywny ?" i żeby mój program odbierał klawisze jakie użytkownik wcisnął w tym oknie.
Czy ktoś może wie jak się za to zabrać?

0

Hook może być globalny albo na wątek. Z tego co kiedyś rozszerzenie explorera robiłem /a konkrenie pulpitu/ to tak:

  • pobierasz uchwyt okna;
  • pobierasz ID wątku powiązanego z oknem za pomocą GetWindowThreadProcessId;
  • tworzysz hook na konkretny wątek - argument dwThreadId z SetWindowsHookEx.
    Tyle...
0

Czy do tak założonego hooka trzeba bibliotekę dll?? Czy tylko te parę komend i po sprawie??

a propoS jeszcze hooka, mogę symulować wciśnięcie klawiszy
keybd_event(zn[i],0,0,0);
Tylko nie wiem czemu, ale jak chce zasymulować klawisz np "<" wpisując kod ASCII to wypisuje jakiś znaczek dziwny, tak samo się dzieje z innymi klawiszami, działają tylko duże litery... [wstyd]

0

O ile dobrze pamietam, to bez biblioteki dll obejdzie sie tylko wtedy, gdy zakladasz hooka na watek nalezacy do twojego procesu.

Wiec w twoim przypadku musisz umiescic hooka w bibliotece.

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