孙鑫VC++第20章HOOK和数据库访问
2012-09-11 23:58
176 查看
第20章、HOOK和数据库的访问
1, 操作系统在传递消息时,将我们感兴趣的消息先传递给HOOK过程,在此函数中进行检查,然后再决定是否放行该消息;(钩子过程)
2. SetWindowsHookEx函数来安装一个钩子过程;最后安装的钩子过程总是安排在该链的前面;
2, 在钩子过程中对信息处理完成之后,如果想把信息继续传递给下一个钩子过程,可以调用CallNextHookEx函数来实现;
3.参数wParam是产生当前按键消息的键盘按键的虚拟键代码,这是Windows定义的与设备无关的,键盘按键的代码。当按下键盘上的按键时,它实际上发送的是一个脉冲信号,Windows定义了一些虚拟键代码来表示这些信号,并由键盘设备驱动程序复杂解释;
因此,在钩子过程中,就可以通过wParam参数得到当前按下的是哪个键了。
4.键盘虚拟键的宏都是以”VK_”开头的;
5.如果想要屏蔽当前正在运行的所有进程的鼠标消息和键盘消息,那么安装钩子过程的代码必须放到动态链接库中去实现;
如果想要让安装的钩子过程和所有进程相关,应该将SetWindowsHookEx函数的第四个参数设置为0,并将它的第三个参数指定为安装钩子过程的代码所在的DLL的句柄;
6.ODBC(Open DatabaseConnectivity,开放数据库互联):只能访问关系型数据库
ODBC提供一个单一的API,可用于处理不同数据库的客户应用程序,使用ODBC API的应用程序可以与任何具有ODBC驱动程序的关系数据库进行通信;
7,OLE DB(对象链接与嵌入数据库)
8,ADO(ActiveX DataObject,ActiveX数据对象)
ADO客户程序通过ADO再访问OLE DB提供程序,这样访问速度要慢一些,但是因为ADO对自动化提供了很好的支持,所有用起来方便点;
9.数据源包括:关系型数据库,电子表格,电子邮件,以及其他的非关系型数据库存储;
10,对数据库的访问总是按行进行的;
11,在VC中利用ADO访问数据库时候,首先要导入ADO库,可以在stdafx.h中导入该库,方法是利用import指令将此动态链接库导入;
12.OLE DB是基于COM技术编写的,ADO是基于OLE DB的,它实际上是一个OLEDB的用户程序,ADO本身也是一个COM组件,COM组件在使用时,需要初始化COM库,这需要调用CoInitialize函数来实现。
在访问完COM库后,程序还需要调用CoUninitialize函数卸载COM库;
13, ADO技术访问主要是针对VB的,在VC中使用比较麻烦;
1, 操作系统在传递消息时,将我们感兴趣的消息先传递给HOOK过程,在此函数中进行检查,然后再决定是否放行该消息;(钩子过程)
2. SetWindowsHookEx函数来安装一个钩子过程;最后安装的钩子过程总是安排在该链的前面;
2, 在钩子过程中对信息处理完成之后,如果想把信息继续传递给下一个钩子过程,可以调用CallNextHookEx函数来实现;
3.参数wParam是产生当前按键消息的键盘按键的虚拟键代码,这是Windows定义的与设备无关的,键盘按键的代码。当按下键盘上的按键时,它实际上发送的是一个脉冲信号,Windows定义了一些虚拟键代码来表示这些信号,并由键盘设备驱动程序复杂解释;
因此,在钩子过程中,就可以通过wParam参数得到当前按下的是哪个键了。
4.键盘虚拟键的宏都是以”VK_”开头的;
5.如果想要屏蔽当前正在运行的所有进程的鼠标消息和键盘消息,那么安装钩子过程的代码必须放到动态链接库中去实现;
如果想要让安装的钩子过程和所有进程相关,应该将SetWindowsHookEx函数的第四个参数设置为0,并将它的第三个参数指定为安装钩子过程的代码所在的DLL的句柄;
6.ODBC(Open DatabaseConnectivity,开放数据库互联):只能访问关系型数据库
ODBC提供一个单一的API,可用于处理不同数据库的客户应用程序,使用ODBC API的应用程序可以与任何具有ODBC驱动程序的关系数据库进行通信;
7,OLE DB(对象链接与嵌入数据库)
8,ADO(ActiveX DataObject,ActiveX数据对象)
ADO客户程序通过ADO再访问OLE DB提供程序,这样访问速度要慢一些,但是因为ADO对自动化提供了很好的支持,所有用起来方便点;
9.数据源包括:关系型数据库,电子表格,电子邮件,以及其他的非关系型数据库存储;
10,对数据库的访问总是按行进行的;
11,在VC中利用ADO访问数据库时候,首先要导入ADO库,可以在stdafx.h中导入该库,方法是利用import指令将此动态链接库导入;
12.OLE DB是基于COM技术编写的,ADO是基于OLE DB的,它实际上是一个OLEDB的用户程序,ADO本身也是一个COM组件,COM组件在使用时,需要初始化COM库,这需要调用CoInitialize函数来实现。
在访问完COM库后,程序还需要调用CoUninitialize函数卸载COM库;
13, ADO技术访问主要是针对VB的,在VC中使用比较麻烦;
相关文章推荐
- Hook和数据库访问
- Hook和数据库访问
- 14、HOOK和数据库访问
- Windows程序设计__孙鑫C++Lesson20《HOOK和数据库访问》
- MFC - HOOK和数据库访问 ( 孙鑫C++第二十讲笔记整理 )
- 《MySQL入门很简单》学习笔记(20)之第20章PHP访问MySQL数据库(关键词:数据库/MySQL/PHP)
- 《VC++深入详解》学习笔记 第二十章 HOOK和数据库访问
- Mybatis使用存储过程访问数据库
- 纯HTML也能访问数据库
- 创新谈-开发基础框架进行应用与数据库访问的封装-王作敬
- VC远程访问数据库
- web api中访问数据库的内存释放问题
- 访问数据库先查看缓存再看数据库小练习
- 配置ASP.NET平台时遇到的“访问IIS元数据库失败”
- SQL Server 2008R2 数据库出现“可疑”导致无法访问解决办法
- C#访问数据库 SQL传递变量
- .NET应用访问数据库之数据库的开销问题 后续篇(一)缓存的使用
- 装完mysql后,要修改或增加用户,否则不能远程访问数据库__2009
- IIS问题解决之——无法访问数据库
- 回顾一下Java中数据库访问,还是有一些可笑的随意性的问题。