event = CreateEvent( NULL, FALSE, FALSE, NULL );
#ifndef HOOKFUNCTIONS_H#define HOOKFUNCTIONS_H#include "hookFunctions_global.h"class HOOKFUNCTIONSSHARED_EXPORT HookFunctions {public: int cxPoint; int cyPoint; HookFunctions(); LRESULT CALLBACK MouseHook(int nCode,WPARAM wParam,LPARAM lParam); int x(); int y(); FILE *file; long buffer[100]; int numwritten;};#endif // HOOKFUNCTIONS_H
#include "hookfunctions.h"HookFunctions::HookFunctions(){} // функция-фильтр, которая обрабатывает наш хук.LRESULT CALLBACK HookFunctions::MouseHook(int nCode,WPARAM wParam,LPARAM lParam){ if((HC_ACTION == nCode)) { cxPoint = LOWORD(lParam); // извлекаем младший байт, это и есть координата х мыши cyPoint = HIWORD(lParam); // извлекаем старший байт, это и есть координата у мыши if (fopen("test.txt","a+")){ numwritten = fwrite((char *)buffer, sizeof(long), 100,file); fclose(file); } } return CallNextHookEx(0, nCode, wParam, lParam);}int HookFunctions::x(){ return cxPoint;}int HookFunctions::y(){ return cyPoint;}
#include <iostream>#include <windows.h>using namespace std;int main(){ HOOKPROC hkprcSysMsg; static HINSTANCE hinstDLL; static HHOOK hhookSysMsg; hinstDLL = LoadLibrary(TEXT("hookFunctions.dll")); hkprcSysMsg = (HOOKPROC)GetProcAddress(hinstDLL, "MouseHook"); // MouseHook функция из библиотеки hhookSysMsg = SetWindowsHookEx( WH_MOUSE, hkprcSysMsg, hinstDLL, 0); return 0;}
#include <iostream>#include <windows.h>using namespace std;LRESULT CALLBACK MouseHook(int nCode, WPARAM wParam, LPARAM lParam){ int x = LOWORD(lParam); // извлекаем младший байт, это и есть координата х мыши int y = HIWORD(lParam); // извлекаем старший байт, это и есть координата у мыши cout<< x <<y; return 0;}int main(){ static HHOOK hhookSysMsg; hhookSysMsg = SetWindowsHookEx(WH_MOUSE,MouseHook,GetModuleHandle(NULL),0); return 0;}