проблемма с SetWindowsHookEx

Тема в разделе "WASM.BEGINNERS", создана пользователем tseonid, 18 июл 2005.

  1. tseonid

    tseonid New Member

    Публикаций:
    0
    Регистрация:
    21 май 2005
    Сообщения:
    8
    Адрес:
    Russia
    Код (Text):
    1.  
    2. obrabotka_hook proc  nCode :DWORD, wParam :WPARAM, lParam :LPARAM
    3. ;cmp nCode,0
    4. ;je exit
    5. mov ebx, lParam
    6. assume ebx: ptr MSG
    7.       ;mov      ecx, [ebx].message
    8.       mov eax,DWORD PTR  [ebx]
    9.        cmp eax ,WM_MOUSEMOVE
    10.        ;jne exit
    11. ;запись
    12.         mov ecx,offset massiv
    13.         mov eax,[ebx].hwnd;MSG.hwnd
    14.         mov [ecx],eax
    15.         add ecx,4
    16.         mov eax,[ebx].message
    17.         mov [ecx],eax
    18.         add ecx,4
    19.         mov eax,[ebx].wParam
    20.         mov [ecx],eax
    21.         add ecx,4
    22.         mov eax,[ebx].lParam
    23.         mov [ecx],eax
    24.         add ecx,4
    25.         mov eax,[ebx].time
    26.         mov [ecx],eax
    27.         add ecx,4
    28.         mov  eax,DWORD PTR[ebx].pt
    29.         mov [ecx],eax
    30.         invoke MessageBeep,0FFFFFFFFh
    31. assume ebx: nothing
    32.         invoke CallNextHookEx,h_hook,nCode,wParam,lParam
    33.         invoke UnhookWindowsHookEx,h_hook
    34. ret
    35. ;exit: invoke CallNextHookEx,h_hook,nCode,wParam,lParam
    36. ;ret
    37. obrabotka_hook endp
    38. play_hook proc uses ebx nCode :DWORD, wParam :WPARAM, lParam :LPARAM
    39. mov ebx, lParam
    40. assume ebx: ptr MSG
    41.       mov eax,DWORD PTR  [ebx]
    42.        ;cmp nCode ,0;верно
    43.        ;jl  CallNext;верно
    44.         mov ecx,offset massiv
    45.         mov eax,[ecx];MSG.hwnd
    46.         mov [ebx].hwnd,eax
    47.         add ecx,4
    48.         mov eax,[ecx];MSG.hwnd
    49.         mov [ebx].message,eax
    50.         add ecx,4
    51.         mov eax,[ecx];MSG.hwnd
    52.         mov [ebx].wParam,eax
    53.         add ecx,4
    54.         mov eax,[ecx];MSG.hwnd
    55.         mov [ebx].lParam,eax
    56.         add ecx,4
    57.         mov eax,[ecx];MSG.hwnd
    58.         mov [ebx].time,eax
    59.         add ecx,4
    60.         mov eax,[ecx];MSG.hwnd
    61.         mov DWORD PTR  [ebx].pt , eax
    62.         invoke MessageBeep,0FFFFFFFFh
    63.         invoke CallNextHookEx,h_hook,DWORD PTR  [esp+04h],DWORD PTR  [esp+08h],DWORD PTR  [esp+0ch]
    64.         invoke UnhookWindowsHookEx,h_hook
    65. ret
    66. play_hook endp
    67.  
    68. postavit_hook proc;здесь ставим хуук
    69.     invoke SetWindowsHookEx,WH_JOURNALRECORD,offset obrabotka_hook,HINST,0
    70.     mov h_hook,eax
    71.     ret
    72. postavit_hook endp
    73.  


    мож кто знает почему неработает

    [​IMG] _315302427__SetWindowsHookE_o_mouse.asm
     
  2. tseonid

    tseonid New Member

    Публикаций:
    0
    Регистрация:
    21 май 2005
    Сообщения:
    8
    Адрес:
    Russia
    сначала должно записаться хук на мыш а другая процедура воспроизвести