Hook nie wysyła komunikatów

0

Czesc.
Mam problem z hookiem...
mam taki kod:

Function Proc(nCode: integer; wParam: WPARAM; lParam: LPARAM): lresult; stdcall;
begin
   Result:=0;
   pcws := PCWPSTRUCT(lparam);
   case pcws.message of
   WM_COMMAND:
    begin
    if HIWORD(pcws.wParam) = BN_CLICKED then
    if LOWORD(pcws.wParam) = 102 then
    Messagebox(ha, 'a', 'a', mb_iconinformation);
    end;
   end;
   Result := CallNextHookEx(Hok, nCode, wParam, lParam);
end;

i wszystko działa ok...po naciśnięciu odpowieniego przycisku pojawia się okienko...
ale jak daje:

Function Proc(nCode: integer; wParam: WPARAM; lParam: LPARAM): lresult; stdcall;
begin
   Result:=0;
   pcws := PCWPSTRUCT(lparam);
   case pcws.message of
   WM_COMMAND:
    begin
    if HIWORD(pcws.wParam) = BN_CLICKED then
    if LOWORD(pcws.wParam) = 102 then
    PostMessage(ha, WM_DESTROY, 0, 0);
    end;
   end;
   Result := CallNextHookEx(Hok, nCode, wParam, lParam);
end;

albo wysyłam jakikolwiek inny komunikat to już nie działa.
proszę o pomoc ;/ bo nie mam pojęcia o co chodzi i w czym jest problem/błąd.
z góry dziękuje.

0

a handle masz dobry...?

btw: jaka jest wlasciwie roznica pomiedzy PostMessage a SendMessage....?

0
cimak napisał(a)

a handle masz dobry...?

btw: jaka jest wlasciwie roznica pomiedzy PostMessage a SendMessage....?

Chyba PostMessage ma niższy priorytet

0

Handle mam na pewno dobry, próbowałem nawet robić nową zmienną i za pomocą findwindow łapać handle i dopiero wysyłac, ale to nie pomogło.

PS.
Miedzy postmessage a SEndMessage chyba nie ma zadnej różnicy, albo jest jakaś drobna różnica, nie pamietam dokladnie.

0

Komunkat wysłany przez PostMessage zostanie obsłużony dopiero wówczas kiedy funkcja GetMessage pobierze go z kolejki, a DispatchMessage wyśle do właściwego okna.
Natomiast funkcja SendMessage nie korzysta z pośrednictwa kolejki komunkatów. Zamiast tego powoduje ona bezpośrednie wywołanie procedury okna, do którego adresowany jest wysyłany komunikat.

0

no tak dziękuję za odp. ale dalej nie rozwiązałem mojego problemu.
próbowałem postmessage i sendmessage. ale nic nie dziala ;/

pomocy.!

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