Не работает SetWindowsHookEx

Тема в разделе "WASM.BEGINNERS", создана пользователем ChugunovDima, 29 июн 2009.

  1. ChugunovDima

    ChugunovDima New Member

    Публикаций:
    0
    Регистрация:
    29 июн 2009
    Сообщения:
    2
    Пробовал искать похожие темы на форуме и в инете, но так ничего толком не получилось. В общем нужно поставить хук на нажатие кнопки мыши. Библиотека у меня грузится, но там при вызове GetProcAddress возникает ошибка, что функция не найдена.

    вот код самой проги
    Код (Text):
    1. #include "windows.h"
    2.  
    3.  
    4.  
    5. int main()//int argc, _TCHAR* argv[])
    6. {
    7.     HOOKPROC hkprcSysMsg;
    8.     static HINSTANCE hinstDLL;
    9.     static HHOOK hhookSysMsg;
    10.     LPCTSTR st =(LPCTSTR)"d:\\MyDll.dll";
    11.     hinstDLL = LoadLibrary(st);
    12.    
    13.    
    14.     st=(LPCTSTR)"MouseProc";
    15.     hkprcSysMsg = (HOOKPROC)GetProcAddress(hinstDLL, st);
    16.     //ошибка возникает после этого
    17.    
    18.    
    19.    
    20.     hhookSysMsg = SetWindowsHookEx(WH_MOUSE,hkprcSysMsg,hinstDLL,0);
    21. return 0;
    22. }
    вот код библиотеки
    Код (Text):
    1. #include "stdafx.h"
    2. #include <stdio.h>
    3.  
    4.  
    5. #ifdef _MANAGED
    6. #pragma managed(push, off)
    7. #endif
    8.  
    9. BOOL APIENTRY DllMain( HMODULE hModule,
    10.                        DWORD  ul_reason_for_call,
    11.                        LPVOID lpReserved
    12.                      )
    13. {
    14.     return TRUE;
    15. }
    16.  
    17. extern LRESULT CALLBACK MouseProc(          
    18.     int nCode,
    19.     WPARAM wParam,
    20.     LPARAM lParam
    21. )
    22. {
    23.     if (wParam==WM_LBUTTONDOWN)
    24.     {
    25.         Beep(200,500);
    26.     }
    27.     return  CallNextHookEx(0, nCode, wParam, lParam);
    28.     //return 0;
    29. }
    30.  
    31. #ifdef _MANAGED
    32. #pragma managed(pop)
    33. #endif
    Подскажите, в чем ошибка
     
  2. djmans

    djmans New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2006
    Сообщения:
    312
    GetProcAddress(hinstDLL, st);

    у тя st то гляди чему равна - "d:\\MyDll.dll",

    делай GetProcAddress(hinstDLL, "MouseProc");
     
  3. djmans

    djmans New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2006
    Сообщения:
    312
    а туплю, не дсоматрел