一个小钩子程序

    技术2022-05-11  119

    #include <windows.h>#include <stdio.h>#include "hook.h"

    HINSTANCE hInst;HHOOK     hHook;

    BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD dwReason, LPVOID lpReserved){    switch (dwReason)    {    case DLL_PROCESS_ATTACH:        hInst = hInstDLL;        hHook = NULL;        break;    }    return TRUE;}

    BOOL DllSetHook(){     if (hHook != NULL)    {        return FALSE;    }        hHook = SetWindowsHookEx(WH_CALLWNDPROC, MyHookProc, hInst, 0);

        if(hHook == NULL)    {        return FALSE;    }    return TRUE;}

    BOOL DllUnSetHook(){    BOOL ret = TRUE;        ret = UnhookWindowsHookEx(hHook);

        if(ret == FALSE)    {        return FALSE;    }    hHook = NULL;    return TRUE;}

    LRESULT CALLBACK MyHookProc(int nCode, WPARAM wParam, LPARAM lParam){    DWORD dwThreadID = (DWORD)wParam;    LPCWPSTRUCT pCwpStruct = LPCWPSTRUCT(lParam);

        if (pCwpStruct->message  WM_MOUSEMOVE &&        pCwpStruct->message <= WM_MBUTTONDBLCLK)    {        //do something~    }    return CallNextHookEx(NULL, nCode, wParam, lParam);

    }


    最新回复(0)