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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| #include "main.h"
HHOOK global;
extern "C" DLL_EXPORT BOOL APIENTRY DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
switch (fdwReason)
{
case DLL_PROCESS_ATTACH:
// attach to process
// return FALSE to fail DLL load
global=hinstDLL;
break;
case DLL_PROCESS_DETACH:
// detach from process
break;
case DLL_THREAD_ATTACH:
// attach to thread
break;
case DLL_THREAD_DETACH:
// detach from thread
break;
}
return TRUE; // succesful
}
extern "C" DLL_EXPORT LRESULT CALLBACK procedure(UINT code, WPARAM wParam, LPARAM lParam){
if(code >= HC_ACTION)
{
MSG *msg = (MSG *)lParam;
if(msg->message == WM_SYSCOMMAND)
{
MessageBoxA(NULL,"1","1",MB_OK);
if ((msg->wParam & 0xFFF0) == SC_MINIMIZE)
{
MessageBoxA(NULL,"minimizi","minimizi",MB_OK);
}
if ((msg->wParam & 0xFFF0) == SC_MAXIMIZE)
{
MessageBoxA(NULL,"maximizi","maximizi",MB_OK);
}
if ((msg->wParam & 0xFFF0) == SC_SCREENSAVE)
{
MessageBoxA(NULL,"SC_SCREENSAVE","SC_SCREENSAVE",MB_OK);
}
if ((msg->wParam & 0xFFF0) == SC_MONITORPOWER)
{
MessageBoxA(NULL,"SC_MONITORPOWER","SC_MONITORPOWER",MB_OK);
}
}}
return CallNextHookEx(NULL, code, wParam, lParam);
} |
Partager