如何写全局钩子截获系统启动的应用程序及系统的键盘事件,
求原码发送到
e-mail: [email protected] 或 [email protected] 小弟深表感谢!!!!

解决方案 »

  1.   

    编译成dll就可以了//.cpp#include "windows.h"#define WH_KEYBOARD_LL     13typedef struct tagKBDLLHOOKSTRUCT {
        DWORD   vkCode;
        DWORD   scanCode;
        DWORD   flags;
        DWORD   time;
        DWORD   dwExtraInfo;
    } KBDLLHOOKSTRUCT, FAR *LPKBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT;HHOOK hHook = NULL;
    HINSTANCE hInstance = NULL;void WINAPI StartHook();
    void WINAPI StopHook();
    LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);BOOL APIENTRY DllMain(HANDLE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved)
    {
    hInstance = (HINSTANCE)hModule;
        return TRUE;
    }LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
    {
    if (nCode >= 0)
    {
    KBDLLHOOKSTRUCT* kb = (KBDLLHOOKSTRUCT*)lParam;
    bool exp = kb->vkCode == 91 || kb->vkCode == 92 || kb->vkCode >= 160 && kb->vkCode <= 165;
    if (exp) return TRUE;
    }
    return CallNextHookEx(hHook, nCode, wParam, lParam);
    }void WINAPI StartHook()
    {
    hHook = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hInstance, 0);

    }void WINAPI StopHook()
    {
    UnhookWindowsHookEx(hHook);
    }//.defEXPORTS
    StartHook @1
    StopHook @2
      

  2.   

    网上很多类似的例子
    http://www.vccode.com/file_show.php?id=178
    http://www.vccode.com/file_show.php?id=175
      

  3.   

    hook键盘的代码给你发过去了。