SetWindowsHook на нестандартное сообщение

Discussion in 'WASM.WIN32' started by SnikerS, Apr 5, 2009.

  1. SnikerS

    SnikerS New Member

    Blog Posts:
    0
    Собственно есть окно, которое обрабатывает нестандартные сообщения(например 8015h и 8018h) заранее зарегеные в системе RegisterWindowMessage'ом.
    Пытаюсь ставить хуки на них - не получается :dntknw: сколько статей не смотрел, везде хуки ставят только на стандартные WM_ сообщения(их я перехватываю успешно).
    А как перехватить эти сообщения?
    Желательно кусок кода на C или Delphi.
    Заранее благодарен.
     
  2. kero

    kero Модератор SOURCES & 2LZ Staff Member

    Blog Posts:
    0
    На всякий случай:
    RegisterWindowMessage к сообщениям < C000h отношения иметь не может.
     
  3. SnikerS

    SnikerS New Member

    Blog Posts:
    0
    может я ошибся в дизасм коде, но мне все равно очень охота отловить это сообщение и передать его своей проге, с параметрами w и l
     
  4. Y_Mur

    Y_Mur Active Member

    Blog Posts:
    0
    GetWindowLong(hWnd, GWL_WNDPROC), SetWindowLong(hWnd, GWL_WNDPROC) позволяют узнать адрес процедуры окна и заменить его на свой, а там уже анлизируй всё что передаётся. Разумеется из АП процесса создавшего окно.
    Хотя по идее SetWindowsHookEx при WH_CALLWNDPROC должна давать такой-же эффект.
     
  5. SnikerS

    SnikerS New Member

    Blog Posts:
    0
    Y_Mur
    Точно, сработало. Спасибо большое.
    Не понимаю почему не получяется через SetWindowsHookEx, но через SetWindowLong получилось так, как надо.
    Теперь буду париться над структурой, которая передается по lParam.
    Еще раз спасибо большое.
    Кому понадобиться - ищите статью "Сабклассинг и суперклассинг в Delphi для начинающих"