//只是键盘鼠标的全局钩子,很简单....
MyHook.def
MyHook.cpp
/******* MyHook.def内容*********/
LIBRARY MyHookDll
EXPORTS
SetHook @1
/************MyHook.cpp*********/
#include <windows.h>
HHOOK g_hMouse;
HHOOK g_hKeyboard;
#pragma data_seg("MySec")
HWND g_hWnd=NULL;//如果你想让某所有的程序都能读取到这个变量。就放在这里。否则放外面
#pragma data_seg()
#pragma comment(linker,"/section:MySec,RWS")
/*如果你想让程序自动传入实例就不要注释掉下面这段代码,这里我用了另一种方法,所以注释掉了。*/
/*
HINSTANCE g_hInst;
BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
{
g_hInst=hinstDLL;
}*/
LRESULT CALLBACK MouseProc(int nCode,WPARAM wParam,LPARAM lParam)
{
return 1;//鼠标钩子函数,1表示不管接到任何鼠标消息都阻止。。
//如果你想接到相应的消息阻止或者改,或记录下来你可以用wParam来判断。
}
LRESULT CALLBACK KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
return 1;//键盘钩子,与鼠标钩子同理。
//lparam消息可用来判断功能键按下状态。wParam是收到某键的消息值..
}
//自定义的接口函数,可随便改名称,和参数。只要导出的函数名正确。
void SetHook(HWND hWnd)
{
g_hWnd=hWnd;
g_hMouse=SetWindowsHookEx(WH_MOUSE,MouseProc,/*g_hInst*/GetModuleHandle("MyHookDll"),0);//0为全局钩子 如果写上某进程的PID,那么就是针对某进程的钩子。
g_hKeyboard=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,GetModuleHandle("MyHookDll"),0);
}
//这种钩子的作用一般是用来禁止某个键,或者记录键盘操作,或者修改某些键。
//还有一种叫API钩子,就是用来捕捉某应用程序调用哪些API函数的钩子,杀毒软件基本原
//理就是API钩子的。。。
MyHook.def
MyHook.cpp
/******* MyHook.def内容*********/
LIBRARY MyHookDll
EXPORTS
SetHook @1
/************MyHook.cpp*********/
#include <windows.h>
HHOOK g_hMouse;
HHOOK g_hKeyboard;
#pragma data_seg("MySec")
HWND g_hWnd=NULL;//如果你想让某所有的程序都能读取到这个变量。就放在这里。否则放外面
#pragma data_seg()
#pragma comment(linker,"/section:MySec,RWS")
/*如果你想让程序自动传入实例就不要注释掉下面这段代码,这里我用了另一种方法,所以注释掉了。*/
/*
HINSTANCE g_hInst;
BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
{
g_hInst=hinstDLL;
}*/
LRESULT CALLBACK MouseProc(int nCode,WPARAM wParam,LPARAM lParam)
{
return 1;//鼠标钩子函数,1表示不管接到任何鼠标消息都阻止。。
//如果你想接到相应的消息阻止或者改,或记录下来你可以用wParam来判断。
}
LRESULT CALLBACK KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
return 1;//键盘钩子,与鼠标钩子同理。
//lparam消息可用来判断功能键按下状态。wParam是收到某键的消息值..
}
//自定义的接口函数,可随便改名称,和参数。只要导出的函数名正确。
void SetHook(HWND hWnd)
{
g_hWnd=hWnd;
g_hMouse=SetWindowsHookEx(WH_MOUSE,MouseProc,/*g_hInst*/GetModuleHandle("MyHookDll"),0);//0为全局钩子 如果写上某进程的PID,那么就是针对某进程的钩子。
g_hKeyboard=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,GetModuleHandle("MyHookDll"),0);
}
//这种钩子的作用一般是用来禁止某个键,或者记录键盘操作,或者修改某些键。
//还有一种叫API钩子,就是用来捕捉某应用程序调用哪些API函数的钩子,杀毒软件基本原
//理就是API钩子的。。。