nixp.ru v3.0

30 мая 2017,
вторник,
06:45:14 MSK

DevOps с компанией «Флант»
anonymous написал 27 декабря 2005 года в 11:20 (286 просмотров) Ведет себя неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.

Ставлю хук:

#include

#include

#include

HHOOK HookHandle;

LRESULT CALLBACK

MouseProc( int nCode, WPARAM wParam, LPARAM lParam )

{

printf(«Mouse has been moved\n»);

if( nCode < 0 )

return CallNextHookEx( HookHandle, nCode, wParam, lParam);

return 1;

}

WINAPI main(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, INT nCmdShow)

{

HookHandle = SetWindowsHookEx( WH_MOUSE, (HOOKPROC)MouseProc, GetCurrentProcess(), 0 );

if( HookHandle )

printf( «Hook has been installed» );

else {

printf( «Can’t install hook» );

getch();

return -1;

}

UnhookWindowsHookEx( HookHandle );

return 0;

}

что не так?

decvar
anonymous

Ты про это:

You must place a global hook procedure in a dynamic-link library (DLL) separate from the application installing the hook procedure. The installing application must have the handle to the DLL module before it can install the hook procedure. To retrieve a handle to the DLL module, call the LoadLibrary function with the name of the DLL. After you have obtained the handle, you can call the GetProcAddress function to retrieve a pointer to the hook procedure. Finally, use SetWindowsHookEx to install the hook procedure address in the appropriate hook chain. SetWindowsHookEx passes the module handle, a pointer to the hook-procedure entry point, and 0 for the thread identifier, indicating that the hook procedure should be associated with all threads in the same desktop as the calling thread

….

Да читал

в прошлий раз когда я спросил чтото подобное тыц дал мне ссылку на сайт откуда я скачал исходник ловли системных событий без DLL-ек,

и все таки можно использовать функции ЕХЕшника также как и DLL, если сделать функцию экспортируемой?

decvar

да. тока def надо писать

anonymous

def чего? какой?

просьба ответить прямо без намеков и ссылок

да, и почему в VC работает а в MinGW и Buildere не работает?

decvar

def — это файл который описывает что именно ты экспортируешь из библиотеки

VC обладает полным набором библиотек и хедеров, совпадающими с текущей реализацией.

MinGW редкосное старье, причем нифига не полное…

Borland вообще непонятно что с собой тащит, так что почему в нем не работает — не знаю…