全局钩子接收键盘消息并产生新的全局键盘消息

下面代码的功能是接收了键盘的空格后,产生键盘事件一个Esc按键的KeyDown,一个空格的KeyDown,在一个Esc按键的KeyDown消息。是按顺序产生这些事件的,代码如下:

#include <Windows.h>
#define DllExport _declspec(dllexport)
HHOOK g_KeyBoard = NULL;
BOOL static Test = FALSE;
LRESULT CALLBACK KeyBoardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if(VK_SPACE ==wParam && (1 == (lParam >> 30 & 1)) &&Test)
{
if(Test)
Test = FALSE;
else
Test = TRUE;
return 1;
}
if(VK_SPACE == wParam &&(0 == (lParam >> 30 & 1)))
{

/*下面五行代码是用来判断我电脑的一个特定程序的窗口的*/
HWND CurrentWnd = GetActiveWindow();
CHAR szClassName[255];
GetClassName(CurrentWnd,szClassName,255);
if(strlen(szClassName) < 100)
return CallNextHookEx(g_KeyBoard,nCode,wParam,lParam);
keybd_event(VK_ESCAPE,0,0,60);
keybd_event(VK_SPACE,0,0,60);
keybd_event(VK_ESCAPE,0,0,60);
//keybd_event(VK_SPACE,0,KEYEVENTF_KEYUP,60);
return 1;
}
return CallNextHookEx(g_KeyBoard,nCode,wParam,lParam);

}

//导出函数,注册全局钩子
DllExport void SetHook()
{
g_KeyBoard = SetWindowsHookEx(WH_KEYBOARD,KeyBoardProc,
GetModuleHandle(TEXT("PlusEclipse")),0);
}

转载于:https://www.cnblogs.com/xxrhblog/p/3556287.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值