开发环境:C++/MFC 现象:键盘钩子在基类 CHtmlView 时运行一短时间后失效。

问题描述

通过DLL方式,使用全局键盘钩子(WH_KEYBOARD_LL),运行程序后,键盘钩子有效,但大约15分钟后,键盘钩子就失效了。把界面从CHtmlView换成CView后,就一切正常。恳请哪位大侠提点一点,小弟先谢过。

解决方案

解决方案二:
帮顶
解决方案三:
多谢热心的cloudgamertabby大大,问题已经解决,是自己的功力不够造成的失误,为帖子完整,把问题说一下。程序结构:MFC程序以DLL的方式调用全局键盘钩子症状:当界面用CVIEW类时,钩子正常运行.但当用CHtmlView做界面时,运行一会后钩子自动失效。原因如下:在DLL的入点函数线程退出的时候放了一条卸下钩子的语句(用***...标识了),具体如下:BOOLAPIENTRYDllMain(HMODULEhModule,DWORDul_reason_for_call,LPVOIDlpReserved){thisModule=(HINSTANCE)hModule;//保存DLL的句柄switch(ul_reason_for_call){caseDLL_PROCESS_ATTACH:break;caseDLL_THREAD_ATTACH:break;caseDLL_PROCESS_DETACH:break;caseDLL_THREAD_DETACH:***(就是这条语句造成的)if(Hook!=NULL)UnhookWindowsHookEx(Hook);//DLL退出时清除钩子break;}returnTRUE;}---------------------------------------------------------------------------------------------------后来经测试得知,使用CHtmlView类时,装载页面后,会自动不定时出现多次DLL卸载的事件。希望有人能解答一下,THANKSALOT.
解决方案四:
该回复于2008-05-09 11:14:22被版主删除
解决方案五:
好像没那么简单,呵呵.

时间: 2024-10-07 11:02:35

开发环境:C++/MFC 现象:键盘钩子在基类 CHtmlView 时运行一短时间后失效。的相关文章

利用键盘钩子开发按键发音程序

本文配套源码 一.前言 一日,看见我妈正在用电脑练习打字,频频低头看键盘,我想:要是键盘能发音的话,不就可以方便她养成"盲打"的好习惯吗?光想不做可不行,开始行动(您可千万别急着去 拿工具箱啊^_^)... 按键能发音,其关键就是让程序能够知道当前键盘上是哪个键被按下,并播 放相应的声音,自己的程序当然不在话下,那么其它程序当前按下哪个键如何得知呢?利用键盘钩子便可 以很好地解决. 下载本文的全部源代码 大小:552K 二.挂钩(HOOK)的基本原理 WINDOWS调用挂接的回调函数时

Masm for Windows集成开发环境编写汇编程序

由于最近在学习汇编,用的软件是一款叫"Masm for Windows集成开发环境",但是发现该软件的资料比较少,对于我们这样刚刚学习汇编的同学,我查找了很多资料,下面主要是介绍该工具及2个汇编的基本程序. 一.软件的使用 下面是阅读完四川大学的课件后几张介绍该软件运行的基本方法: 1.进入Masm forWindows集成实验环境 2.编写程序,该代码是该软件自带的简单入门实例11个中的第一个,后面将详细介绍该代码 3.保存汇编程序.编写完程序必须要保存后才能运行 4.运行程序 5.

Eclipse平台入门:开发环境与实例

试验一下 Java 开发环境,我们将创建并运行一个"Hello, world"应用程序.使用 Java 透视图,右键单击"Hello"项目,选择 New=>Class,如图 2 所示.在随后出现的对话框中,键入"Hello"作为类名称.在"Which method stubs would you like to create?"下面,选中"public static void main(String[] arg

Eclipse平台入门之二:开发环境与实例

接着上一篇文章Eclipse平台入门之一:什么是Eclipse,我们将开始介绍Java 开发环境(JDE). 为试验一下 Java 开发环境,我们将创建并运行一个"Hello, world"应用程序.使用 Java 透视图,右键单击"Hello"项目,选择 New=>Class,如图 2 所示.在随后出现的对话框中,键入"Hello"作为类名称.在"Which method stubs would you like to crea

PHP+MYSQL网站开发环境架设(6):APMServ

较为轻量的WAMP,程序安装过程中它提示你可以改变默认的80端口为服务端口,软件没有控制面板,但一切操作都在开始菜单中加入了快捷方式. 软件下载地址:http://www.appservnetwork.com/ 很多朋友都有自己的个人网站,在里面放上自己的博客,随心所欲的换皮肤,多好!有些高手还可以自己DIY皮肤,设置自己改源码,创造出更好的效果来.当然了,这些都需要在本地进行测试,当然就少不了搭建服务器了. 说到服务器,可能各位都有感受:那就是相当麻烦!重装机器后,还得重装.如果不小心放在了系

构架Linux下的PHP+MySQL开发环境

作者:余海发 目前Web开发人员常使用的开发语言是PHP.ASP和JSP.这三种语言各有所长,也各自拥有一大批忠实的开发者和使用者.对于使用PHP做Web开发的人员来说,很多人选择了在Windows下进行开发,而最终开发出的程序则运行在Unix类(如Linux/FreeBSD)的操作系统上.开发环境和实施环境的不同,使得许多开发人员的系统知识稍显欠缺.作为一个使用PHP进行Web开发的人员而没有用过Linux,这种现象并不少见.更不要说具备一些简单的Linux系统知识,能够自己安装开发环境了.一

如何把Vim打造成全新的集成开发环境

让GUI都玩儿蛋去!鼠标是你的敌人!只有键盘才是你唯一的朋友!如果把Vim和Tmux结合在一起会发生什么?你将拥有完美的编程环境!下面是我多年来珍藏的一些不传之秘,有了这些,你立刻就能轻松打造出属于你的Vim开发环境. Tmux相关 Tmux速成班,这个不错,可以让你快速掌握如何开始使用Tmux. 这是我的tmux.conf配置文件,它有一个定制状态栏,可以大大改进颜色主题.优化可读性,里面还有一个必不可少的操作:重设快捷将,因为Ctrl+bVim要用,因此它帮你改为了Ctrl+a. 其实,构建

C程序移植到VC开发环境下

说明 本文是作者学习计算方法时所做工作的总结.我们改写了徐士良先生编著的<C常用算法程序集>(清华大学出版社出版) 数值计算部分-前15章所有程序,并全部在 VC6 + Windows2000 下调试通过.数组类和矩阵类有两个版本:封装成模板类.普通类,我个人认为后者可能更实用,但论文中以模板类形式给出. 本文已经在www.vchelp.net上发表过,该网站允许作者另投其他网站. 摘要 针对C程序的特点,给出将之移植到VC集成环境下的技术,对一个常用程序集实施了大规模的改写,并提供了C++数

Linux下的PHP+MySQL开发环境的配置

目前Web开发人员常使用的开发语言是PHP.ASP和JSP.这三种语言各有所长,也各自拥有一大批忠实的开发者和使用者.对于使用PHP做Web开发的人员来说,很多人选择了在Windows下进行开发,而最终开发出的程序则运行在Unix类(如Linux/FreeBSD)的操作系统上.开发环境和实施环境的不同,使得许多开发人员的系统知识稍显欠缺.作为一个使用PHP进行Web开发的人员而没有用过Linux,这种现象并不少见.更不要说具备一些简单的Linux系统知识,能够自己安装开发环境了.一个开发人员了解