当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 信息产业部电子第二十二研究所青岛分所 郎锐 一、引言 我们可以在应用程序中毫不费力的捕获在本程序窗口上所进行的键盘操作,但如果我们想要将此程序作成一个监控程序,捕获在Windows平台下任意窗口上的键盘操作,就需要借助于全局钩子来实现了。
 

 

    摘要: p>  数据库的完整性是影响客户/服务器应用系统正常运行的重要因素。维护数据库的完整性不仅是数据库设计人员的任务,也需要客户端开发人员的积极参与。不在客户端进行完整性约束,一般会引起odbc错误,导致数据库操作失败,程序异常中断。更为严重的是在某些情况下会突破服务器的约束机制,破坏后台数据库的完整性。因此,只有双方相互配合才能开发出完整、可靠的客户/服务器系统。下面以mssqlserver6.5......
 ·用directdraw编写动画程序    »显示摘要«
    摘要:  ∫?理论篇   说起directdraw也许大多数人还不知其为何物,但一提到directx恐怕每一个computer fan 和game fan都再耳熟不过了。(什么!你没听说过directx!?oh,my god!来人哪,拉下去重责五十大板!)directx又叫game sdk,它最大的特点是直接对硬件的抽象层(hal)进行操作,利用这个特点可以制作出高性能的windows游戏。具体信......


用键盘钩子在Windows平台捕获键盘动作
信息产业部电子第二十二研究所青岛分所 郎锐

【程序编程相关:保障Win2003域控制器的安全性

【推荐阅读:用Web UI远程管理Win 2003服

一.引言 【扩展信息:Windows Server 2003虚

我们可以在应用程序中毫不费力的捕获在本程序窗口上所进行的键盘操作,但如果我们想要将此程序作成一个监控程序,捕获在windows平台下任意窗口上的键盘操作,就需要借助于全局钩子来实现了.

二.系统钩子与dll

钩子的本质是一段用以处理系统消息的程序,通过系统调用,将其挂入系统.钩子的种类有很多,每种钩子可以截获并处理相应的消息,每当特定的消息发出,在到达目的窗口之前,钩子程序先行截获该消息.得到对此消息的控制权.此时在钩子函数中就可以对截获的消息进行加工处理,甚至可以强制结束消息的传递.

在本程序中我们需要捕获在任意窗口上的键盘输入,这就需要采用全局钩子以便拦截整个系统的消息,而全局钩子函数必须以dll(动态连接库)为载体进行封装,vc6中有三种形式的mfc dll可供选择,即regular statically linked to mfc dll(标准静态链接mfc dll).regular using the shared mfc dll(标准动态链接mfc dll)以及extension mfc dll(扩展mfc dll). 在本程序中为方便起见采用了标准静态连接mfc dll.

三.键盘钩子程序示例

本示例程序用到全局钩子函数,程序分两部分:可执行程序keyhook与动态连接库launchdll.

1.首先编制mfc扩展动态连接库launchdll.dll:

(1)选择mfc appwizard(dll)创建项目launchdll;在接下来的选项中选择regular statically linked to mfc dll(标准静态链接mfc dll).

(2)在launchdll.h中添加宏定义与待导出函数的声明:

#define dllexport __declspec(dllexport)

……

dllexport void winapi installlaunchev();

……

class claunchdllapp : public cwinapp

{

public:

claunchdllapp();

//{{afx_virtual(claunchdllapp)


...   下一页
    摘要: 髡咧饕常?a href="http://usevb.yeah.net/">傻儿vb园 作者信箱:王文涛   作者在写《傻瓜打表》部件时,原本想提供打印预览功能,因当时眼界较窄,所知道的只有一个方法实现打印预览: 定义一个 object 变量(如:objprn),用该变量替换程序中的与打印有关的语句中的 printer 对象,打印时,首先设置 set objprn = printer 预览......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE