一个拦截系统消息的钩子程序事例
2011-07-29 17:29
260 查看
//一个拦截系统消息的钩子程序事例
static LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);
BOOL C**App::InitInstance()
{
HHOOK hhkKybd = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc,
AfxGetApp()->m_hInstance, 0);
///...///
InitCommonControls();
CWinApp::InitInstance();
///...///
return TRUE;
}
LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT) lParam;
if (nCode == HC_ACTION)
{
int vKey = LOBYTE(p->vkCode);
//如果为键盘消息
if (wParam == WM_KEYDOWN)
{
switch(vKey)
{
case 'd':
case 'D':
{
//如果用户按下了Win + D键盘消息
if(::GetKeyState(VK_LWIN) < 0)
{
///do anything here///
}
}
}
}
return CallNextHookEx(NULL, nCode, wParam, lParam);
}
static LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);
BOOL C**App::InitInstance()
{
HHOOK hhkKybd = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc,
AfxGetApp()->m_hInstance, 0);
///...///
InitCommonControls();
CWinApp::InitInstance();
///...///
return TRUE;
}
LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT) lParam;
if (nCode == HC_ACTION)
{
int vKey = LOBYTE(p->vkCode);
//如果为键盘消息
if (wParam == WM_KEYDOWN)
{
switch(vKey)
{
case 'd':
case 'D':
{
//如果用户按下了Win + D键盘消息
if(::GetKeyState(VK_LWIN) < 0)
{
///do anything here///
}
}
}
}
return CallNextHookEx(NULL, nCode, wParam, lParam);
}
相关文章推荐
- 广泛使用的一个对特定在线用户发送系统消息的程序
- 一个基于PXA255嵌入式系统的简单24位图片读取输出程序
- C#钩子本线程内消息拦截
- C#拦截系统消息的方法Application.AddMessageFilter(转)
- 写一个程序判断当前系统存储模式是大端还是小端
- 编译一个可以在Android系统上运行的可执行程序
- 【翻译】DotNetMQ: 一个.NET版完整的消息队列系统
- 一个消息提示托盘程序的开发历程
- windows全局消息钩子的一个BUG
- squid coss文件系统的一个bug,运行程序core down
- 继续努力ing。。。设计一个程序,用于赛车上的计算机监视系统——提示该不该加油
- Apache Kafka —一个不同的消息系统
- 关于《创建组件**失败。错误消息为**未能加载文件或程序集**或它的某一个依赖。系统找不到指定文件。》的解决方案
- 把当前进程变为一个系统服务,从而在任务列表中把程序隐藏起来
- 用消息队列编写一个客户端服务器通信的程序
- 从COM中发送一个自定义消息给C#程序
- 如何保证同时只有一个程序在系统中运行
- 一个SDI程序基于CFormView视。上面放一个CStatic控件,给视图添加双击消息,运行程序后,双击视图,会有弹出消息响应。 但是双击CStatic类控件,却没有响应
- 写一个c程序辨别系统是16位or32位
- 用日志钩子处理键盘消息时的一个注意事项