基于MFC对话框的应用程序在响应按键消息和热键方面都力不从心,CDialog类的消息循环中去掉了TranslateAccelerator函数,因此不能响应热键;同时由于对话框上可能有很多控件,且默认情况下这些子窗口已经截获了焦点,因此键盘消息已经被控件捕获了;同时为了实现控件焦点切换和对话框默认行为...
分类:
编程语言 时间:
2015-11-04 09:21:47
阅读次数:
261
最近在写程序时,出现了对话框里面不接收键盘消息的情况,特别搜索了以下内容MFC中对话框是不会直接响应OnChar和OnKeyDown消息的,会被 其它控件拦截,测试时发现不会进入这两个函数,必须重定义PreTranslateMessage()虚函数才能正确地 进入这两个消息函数,具体实现如下: .....
分类:
编程语言 时间:
2015-10-29 13:05:36
阅读次数:
178
PreTranslateMessage 函数调用DoModal()在关闭对话框时会出现下面的bug!
原因分析:在PreTranslateMessage里的获取对应m_hWnd,DoModal()模态对话框退出后,m_hWnd不是有效的窗口句柄,需要return
rrue
解决方法:在PreTranslateMessage中处理完键盘消息后,做一下两步:
1.重新这只焦点...
其实就是全局和局部的区别
如果可以用线程Hook实现就最好用线程Hook
因为Hook技术用的不好会大大降低整个Windows系统的性能
这也是为什么WinCE不支持HOOK的原因了
至于键盘HOOK用SetWindowsHookEx带WH_KEYBOARD参数就可以了
比如你做一个全局的键盘HOOK,这样不管当前激活的应用程序是什么
只要有键盘消息,windows都会先问问你的Hoo...
分类:
编程语言 时间:
2015-08-21 13:50:12
阅读次数:
347
代码:屏蔽三个全局快捷键
代码的作用是屏蔽掉注释中的三个快捷键.
LRESULT CALLBACK LowLevelKeyboardProc (INT nCode, WPARAM wParam, LPARAM lParam)
{
// By returning a non-zero value from the hook procedure, the
// messag...
分类:
其他好文 时间:
2015-08-21 11:22:38
阅读次数:
194
1、木马控制及通信方法包括:双管道,端口重用,反弹技术,Hook技术,今天重点引用介绍一下hook的用法,hook信息后可以将结果发送到hacker邮箱等,实现攻击的目的。
转自:http://hi.baidu.com/mousetopshow/item/a951102d679f6e8f9c63d1b0
钩子能截获系统并得理发送给其它应用程序的消息,能完成一般程序无法完成的功能。掌...
分类:
其他好文 时间:
2015-08-20 13:05:19
阅读次数:
115
(1)子窗口控件:①子窗口,其parent为父窗口句柄;②子窗口状态发生变化时,会处理鼠标和键盘消息,并且通知其父窗口。可分为自定义子窗口控件和标准的子窗口控件(如按钮)(2)子窗口控件的使用场合①在对话框里使用最广——有内在机制支持Tab和光标移动键来转移焦点。②在窗口表面直接使用:没内在机制支持...
分类:
其他好文 时间:
2015-07-19 19:24:56
阅读次数:
160
6.3字符消息 while(GetMessage(&msg,NULL,0,0)){ TranslateMessage(&msg);//Windows将根据击键消息、转义状态和键盘的国家/地区配置等信息,将扫描码转换成相应的字符码,如果可以组合成一个字符,则把字符消息放入应用程序的消息队列,产生WM_...
分类:
其他好文 时间:
2015-07-18 09:33:43
阅读次数:
237
原文链接:http://blog.sina.com.cn/s/blog_5f8817250100taab.html本文大部分来自MSDN和网友的博客,我在实践的基础上再作了一些总结。1,虚拟键(VK_*)键盘上每一个键对应一个扫描码,扫描码是OEM厂商制定的,不同的厂商生产的键盘同样一个按键的扫描码...
BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg){ // TODO: 在此添加专用代码和/或调用基类 if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE) { ret...
分类:
其他好文 时间:
2015-07-10 00:21:28
阅读次数:
101