1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| #include "pch.h" #include <Windows.h>
#ifdef __cplusplus extern "C" { #endif _declspec(dllexport) void OnHook(); _declspec(dllexport) void OffHook(); #ifdef __cplusplus } #endif
HHOOK g_hook = NULL; HINSTANCE instance = NULL;
BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: instance = hModule; MessageBoxA(0,"text", "title", 0); break; case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; }
LRESULT CALLBACK getMsgProc(int code, WPARAM wparam, LPARAM lparam) { return CallNextHookEx(g_hook, code, wparam, lparam); }
void OnHook() { g_hook = SetWindowsHookEx(WH_GETMESSAGE, getMsgProc, instance, 0); } void OffHook() { UnhookWindowsHookEx(g_hook); }
|