1. Акция на весь декабрь! Получай оплату х2 за уникальные статьи, объемом от 200 слов, если в заголовке темы и теле статьи присутствует слово Python
    Скрыть объявление

Хук Wh_getmessage.

Тема в разделе "Общие вопросы по С и С++", создана пользователем solova, 13 апр 2011.

  1. solova

    solova Гость

    Я так и не понял ловит ли (WH_GETMESSAGE) WM_COMMAND-ы.
    В нэте находил посты где писали что он только с Postmessa-джами работает,
    а так же находил посты где даже код предоставляли который ловит (но для локалки)
    Если всё таки можно отловить:
    Взгляните ктонить на мой код, что там не так.(там ещё отлов"PostMessag-а"WM_SYSCOMMAND)<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Код</div></div><div class="sp-body"><div class="sp-content">
    Код (C++):
    ...
    hHook = SetWindowsHookEx(WH_GETMESSAGE,GetMsgProc,(HINSTANCE)hDll,dwThrd);
    ...
    LRESULT CALLBACK GetMsgProc(int nCode,WPARAM wP,LPARAM lP)
    {
    if(nCode >= 0) //HC_ACTION
    {
    LPMSG msg = (LPMSG)lP;
    if(wP==PM_REMOVE)
    {
    if((msg->message==WM_SYSCOMMAND)&&(LOWORD(msg->wParam)==57665))//Spy++ >>PostMessage
    {
    MessageBox(NULL,L"WM_SYSCOMMAND",L"От Хука",MB_OK);
    }
    }
    if((msg->message==WM_COMMAND)&&(LOWORD(msg->wParam)==57665))//Spy++ >>SendMessage
    {
    MessageBox(NULL,L"WM_BUTTON",L"От Хука",MB_OK);
    }
    }
    return CallNextHookEx(hHook,nCode,wP,lP);
    }
    WM_SYSCOMMAND ловит нормально(правда без if(wP==PM_REMOVE) ловит сообщение дважды)
    а WM_COMMAND не могит поймать.

    ПыСы: а if(wP==PM_REMOVE) что проверяет?
    типа?
    - "уже выполненный Мессадж удаляется из списка Постмессаджов"
    или на оборот?
    - "начинает выполнятся ,но не удаляется" (удалится после выполнения)
     
  2. solova

    solova Гость

    уже сам выяснил -- WH_GETMESSAGE не ловит SendMessage
     
Загрузка...
Похожие Темы - Хук Wh_getmessage
  1. alekssgor
    Ответов:
    0
    Просмотров:
    1.227

Поделиться этой страницей