DLL中的代码:
#define WM_KEY_HOOK WM_USER+200 //自定义消息
extern "C" {
__declspec(dllexport) BOOL APIENTRY StartHook(); //安装键盘钩子
__declspec(dllexport) BOOL APIENTRY EndHook(); //删除键盘钩子
LRESULT WINAPI KeyProc(int nCode,WPARAM wparam,LPARAM lparam);
}
HHOOK hHook=NULL; //鼠标钩子函数句柄
HINSTANCE hInstance=NULL; //DLL实例句柄
SetWindowsHookEx
函数原形:HHOOK SetWindowsHookEx(
int idHook, // 钩子类型,
HOOKPROC lpfn, // 钩子函数地址
INSTANCE hMod, // 钩子所在的实例的句柄,
DWORD dwThreadId // 钩子所监视的线程的线程号
)
hMod: 对于线程序钩子,参数传NULL;
对于系统钩子:参数为钩子DLL的句柄
dwThreadId:对于全局钩子,该参数为NULL。
钩子类型用WH_CALLWNDPROC=4(发送到窗口的消息。由SendMessage触发)
返回:成功:返回SetWindowsHookEx返回所安装的钩子句柄;
失败:NULL;
以上就是关于c语言怎么写钩子程序全部的内容,包括:c语言怎么写钩子程序、c#写钩子程序、在c++builder中怎样做钩子程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)