学习VC++深入浅出——钩子的使用
2008-03-19 23:35
375 查看
学习VC++深入浅出——钩子的使用
HHOOK g_hMouse = NULL;
HHOOK g_hKeyboard = NULL;
HWND g_hWnd = NULL;
LRESULT CALLBACK MouseProc(int nCode,WPARAM wParam,LPARAM lParam)
...{
return 1;
}
LRESULT CALLBACK KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
...{
//if(VK_SPACE == wParam)
/**//* if(VK_F4 == wParam && (1==(lParam>>29 & 1)))
return 1;
else
return CallNextHookEx(g_hKeyboard,nCode,wParam,lParam);*/
if(VK_F2 == wParam)
...{
::SendMessage(g_hWnd,WM_CLOSE,0,0);
UnhookWindowsHookEx(g_hKeyboard);
UnhookWindowsHookEx(g_hMouse);
}
return 1;
}
BOOL CInnerHookDlg::OnInitDialog()
...{
// TODO: Add extra initialization here
g_hWnd = m_hWnd;
g_hMouse = SetWindowsHookEx(WH_MOUSE,MouseProc,NULL,GetCurrentThreadId());
g_hKeyboard =SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,NULL,GetCurrentThreadId());
return TRUE; // return TRUE unless you set the focus to a control
}
HHOOK g_hMouse = NULL;
HHOOK g_hKeyboard = NULL;
HWND g_hWnd = NULL;
LRESULT CALLBACK MouseProc(int nCode,WPARAM wParam,LPARAM lParam)
...{
return 1;
}
LRESULT CALLBACK KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
...{
//if(VK_SPACE == wParam)
/**//* if(VK_F4 == wParam && (1==(lParam>>29 & 1)))
return 1;
else
return CallNextHookEx(g_hKeyboard,nCode,wParam,lParam);*/
if(VK_F2 == wParam)
...{
::SendMessage(g_hWnd,WM_CLOSE,0,0);
UnhookWindowsHookEx(g_hKeyboard);
UnhookWindowsHookEx(g_hMouse);
}
return 1;
}
BOOL CInnerHookDlg::OnInitDialog()
...{
// TODO: Add extra initialization here
g_hWnd = m_hWnd;
g_hMouse = SetWindowsHookEx(WH_MOUSE,MouseProc,NULL,GetCurrentThreadId());
g_hKeyboard =SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,NULL,GetCurrentThreadId());
return TRUE; // return TRUE unless you set the focus to a control
}
相关文章推荐
- java中钩子方法简单使用
- Android深入浅出系列之实例应用—弹出消息Toast对象的使用纯文本方式(一)
- 深入浅出RxJava四-在Android中使用响应式编程
- c++ hook 钩子的使用介绍
- 使用消息钩子实现CEGUI中文输入
- iPhone开发之深入浅出 (2) — ARC之@property使用
- 深入浅出 Cocoa 之 Core Data(4)- 使用绑定
- Android WebView使用深入浅出
- 消息钩子使用教程(转)
- C语言深入浅出可变参数函数的使用技巧(转)
- Android WebView使用深入浅出
- C#使用全局钩子(hook),SetWindowsHookEx返回0、不回调的解决
- [置顶] 【Mybatis】深入浅出Mybatis(七)——别名使用
- 钩子的使用
- 深入浅出RxJava四-在Android中使用响应式编程
- 深入浅出WPF之Binding的使用(二)
- 深入浅出React之第三章:使用redux管理应用状态
- Android WebView使用深入浅出
- 钩子使用指南
- 深入浅出SharePoint——包含关联字段列表模板使用问题