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
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.