SetWindowsHookEx 全局钩子

本文介绍如何使用SetWindowsHookEx创建全局钩子,通过ASM编写dll,并在console程序中设置消息循环,确保钩子函数被正确调用。内容包括dll源码(te.h, te.cpp, dllmain.cpp)及示例console应用程序。" 132704901,19687622,小波变换与DTW算法在数字识别中的应用,"['算法', 'matlab', '开发语言', '模式识别']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

另一个用asm写的 : win32asm 全局钩子

反编译用

一个无用的键盘钩子, console 代码中加入msg loop , 被勾应用调用SendMessage 去调用钩子函数. 如果不加msg loop 则一直等待

 

dll:

te.h

#pragma once

#ifdef  _DLLAPI
	#define DLLAPI extern "C"  __declspec(dllexport)
#else
	#define DLLAPI extern "C"  __declspec(dllimport)
#endif

DLLAPI BOOL install_hook();

DLLAPI BOOL uninstall_hook();

te.cpp

#ifdef  _DLLAPI
#include "pch.h"
#include <stdlib.h>

#pragma data_seg("shared_data")  //共享段
HHOOK hook = 0;
FILE* pFile = 0;
#pragma data_seg()
#pragma comment(linker,"/section:shared_data,rws")

LRESULT CALLBACK KeyboardProc(int code,
	WPARAM wParam,
	LPARAM lParam
)
{
	char szBuffer[256] = { 0 };
	char szWriteBuffer[256] = { 0 };

	if (code < 0 || code == HC_NOREMOVE || lParam & (1<<30))
		return CallNextHo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值