Welcome 微信登录

首页 / 软件开发 / C++

深入VCL理解BCB的消息机制1

深入VCL理解BCB的消息机制1

深入VCL理解BCB的消息机制12008-01-05本文所谈及的技术内容都来自于Internet的公开信息。由CKER在闲暇之际整理后,贴出来以飴网友,姑且妄称原创。『每次在国外网站上找到精彩文章的时候,心中都会暗自叹息为什么在中文网站难以觅得这类文章呢?其实原因大家都明白。』时至今日,学习Windows的兄弟们都知道消息机制的重要性。所以理解消息机制也成了不可或缺的功课。大家都知道,Borland的C++ Builder以及Delphi的核心是VCL。作...
深入VCL理解BCB的消息机制3

深入VCL理解BCB的消息机制3

深入VCL理解BCB的消息机制32008-01-05方法3 来自TApplication的方法不用我多废话,大家都知道TApplication在BCB中的重要性。在BCB的帮助中指出:TApplication、TScreen和TForm构成了所有BCB风格的Win32 GUI程序的脊梁,他们控制着您程序的行为。TApplication类提供的属性和方法封装了标准Windows程序的行为。TApplication表现了在Windows操作中创建、运行、支持和...
CB中消息处理过程及应用

CB中消息处理过程及应用

CB中消息处理过程及应用2008-01-05C++ Builder作为一种RAD方式的程序开发工具,其全新的可视化编程环境、面向组件的开发模式无疑会大大地提高编程效率。它对繁杂的Windows 消息及API作了较全面的封装,者在大多数情况下不需理会Windows消息的细节,只要将心思放在组件的事件处理函数上即可。然而,毕竟Windows操作系统是一个以消息驱动的系统,运行其上的应用程序,自然无法脱离系统之外,因此掌握并运用消息处理,对一些问题的处理会有事半...
拦截Windows消息

拦截Windows消息

拦截Windows消息2008-01-05---- Borland C++ Builder的API后门---- 引子---- C++ Builder不愧为Borland公司的优秀产品,用它来开发Windows程序非常快捷高效,但在编程过程中你也会发现它的一些限制性,让你无法实现自己的想法。比如你无法在修改表单的系统菜单;比如使用跟踪栏时,你找不到StartTrack和EndTrack事件,而偏偏你的程序需要这两个事件。Windows API编程中,你就不会...
让应用程序禁止Windows屏幕保护

让应用程序禁止Windows屏幕保护

让应用程序禁止Windows屏幕保护2008-01-05如果在你的程序中需要一个很长的时间段来进行大量的数据处理,这段时间长得足以使Windows因检测不到用户动作而激活屏幕保护程序,一旦启动了屏幕保护程序,你的程序运行实际上就变慢了,这会大大影响程序的正常运行。有没有一种方法,使程序在进行长时间的数据处理前关掉屏幕保护呢?答案是肯定的。Windows在启动屏幕保护程序前会向当前激活的应用程序发送WM_SYSCOMMAND消息,其中wParam参数指定了即...
在CB中响应消息及自定义消息

在CB中响应消息及自定义消息

在CB中响应消息及自定义消息2008-01-05在 Borland C++Builder 中,也可以象在 Delphi 中一样响应消息,只是看起来要稍复杂一点。对于已定义的消息,可以直接响应,而对于非系统消息可以照如下自定义://以下代码写在头文件中:#define WM_MY_OPEN_CMDLINE_FILE (WM_USER+1) //进程间通讯的自定义消息#define WM_MY_SEARCH_NODE (WM_USER+2) //查找命令的自定...
如何捕获VCL没有处理的Windows消息

如何捕获VCL没有处理的Windows消息

如何捕获VCL没有处理的Windows消息2008-01-05---- C++ Builer的VCL提供了对大多数Windows消息的处理机制,这对于一般应用程序是足够了,但VCL也不是无所不包的,对于那些VCL没有处理的Windows消息,在需要时如何进行捕获呢?C++ Builder采用了消息映像表机制,通过消息映像表将特定的Windows消息与代码中的函数联系起来,当窗口捕获到消息时就会调用这个函数,这其实和事件句柄非常相似。---- C++ Bui...
WINDOWS键盘事件的挂钩监控原理及其应用技术

WINDOWS键盘事件的挂钩监控原理及其应用技术

WINDOWS键盘事件的挂钩监控原理及其应用技术2008-01-05WINDOW的消息处理机制为了能在应用程序中监控系统的各种事件消息,提供了挂接各种反调函数(HOOK)的功能。这种挂钩函数(HOOK)类似扩充中断驱动程序,挂钩上可以挂接多个反调函数构成一个挂接函数链。系统产生的各种消息首先被送到各种挂接函数,挂接函数根据各自的功能对消息进行监视、修改和控制等,然后交还控制权或将消息传递给下一个挂接函数以致最终达到窗口函数。WINDOW系统的这种反调函数挂...
WIN95日志钩子(JournalRecord Hook)的使用

WIN95日志钩子(JournalRecord Hook)的使用

WIN95日志钩子(JournalRecord Hook)的使用2008-01-05钩子是WINDOWS中消息处理机制的一个要点,通过安装各种钩子,应用程序能够设置相应的子例程来监视系统里的消息传递以及在这些消息到达目标窗口程序之前处理它们。钩子的种类很多,每种钩子可以截获并处理相应的消息,如键盘钩子可以截获键盘消息,鼠标钩子可以截获鼠标消息,外壳钩子可以截获启动和关闭应用程序的消息,日志钩子可以监视和记录输入事件。钩子分为线程专用钩子和全局钩子,线程专用...
Windows中的消息详细列表

Windows中的消息详细列表

Windows中的消息详细列表2008-01-05消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg,它在单元中是这样声明的:typeTMsg = packed record...
初级WINDOWS API C++语言版编程(2)

初级WINDOWS API C++语言版编程(2)

初级WINDOWS API C++语言版编程(2)2008-01-05在上一篇中我着重介绍了WINDOWS API32程序的基本结构框架,您一定想完成自己的第一个WINDOWS程序吧?别忙我先向您介绍一下API的窗口函数,只有了解它您才能进行编程。什么是窗口函数呢?它又定义了什么呢?窗口函数定义了应用程序对接受到的不同消息的响应,其中包含了应用程序对各种可能接受到的消息的处理过程,是消息处理分支控制语句的集合。一般来说,窗口函数由一个或多个switch语句...
初级WINDOWS API C++语言版编程(1)

初级WINDOWS API C++语言版编程(1)

初级WINDOWS API C++语言版编程(1)2008-01-05当我们使用着漂亮的界面,方便快捷的应用程序的时候。我们才会发现,以前曾编写的程序是多么的粗糙(TC编写的程序)。简单的界面,16色的显示系统,大大的落后于计算机的发展。简单的说就是杀鸡用牛刀。如何该改变这种情况呢?Microsoft公司在推出windows操作系统的时候给出了简单易行的解决方案。这就是WINDOWS平台API应用程序接口。当然API也是发展的,它从WIN 16 API发展...
WinAPI入门

WinAPI入门

WinAPI入门2008-01-05不要觉得奇怪,虽然我们拥有众多“所见即所得”的方式来开发众多界面精美的应用程序,这些可视化的编程环境提供了大量的类库和控件,但是在开发者享受方便的同时, 他们的手脚已经不知不觉的受到了限制,有很多深入到Windows内部的操作它们无法完成, 为什么?因为所用的类库不支持。事实上这些类库与控件都是架构在Window API的基础上面的,API即 ApplicationProgramming Inte...
初级Windows API C++语言版编程(3)

初级Windows API C++语言版编程(3)

初级Windows API C++语言版编程(3)2008-01-05由于上一章的文章中我没有向大家介绍清楚初试化的具体实现,造成很多的读者无法很好的理解,这是我的失误。本人现在补上,请大家原谅。一个Windows API程序的初始化主要分为为四个部分。1、窗口类的定义2、窗口类的注册3、创建窗口实例4、显示窗口①窗口类定义在Windows应用程序中,窗口类定义了窗口的形式与功能。它的定义过程通过给窗口类数据结构WNDCLASS赋值来完成,这个数据结构包含...
屏幕抓词的技术实现

屏幕抓词的技术实现

屏幕抓词的技术实现2008-01-05屏幕上的文字大都是由gdi32.dll的以下几个函数显示的:TextOutA、TextOutW、ExtTextOutA、ExtTextOutW。实现屏幕抓词的关键就是截获对这些函数的调用,得到程序发给它们的参数。我的方法有以下三个步骤:一、得到鼠标的当前位置通过SetWindowsHookEx实现。二、向鼠标下的窗口发重画消息,让它调用系统函数重画通过WindowFromPoint,ScreenToClient,Inv...
用HOOK函数自动关闭IE广告窗口

用HOOK函数自动关闭IE广告窗口

用HOOK函数自动关闭IE广告窗口2008-01-05在用IE浏览某些网站的时候,网站主页会弹出一些广告网页。所以每当打开这样的网页时,总得手动关闭广告页,感觉比较麻烦。那么,是否可以编写程序来判断打开的网页是否是弹出广告,然后自动关闭这些广告,避免每次手动关闭弹出窗口的麻烦?在一些报刊上介绍了某些解决方法,以下就通过钩子(HOOK)函数截获消息的方法进行讨论:1、弹出式广告框也是IE浏览窗口,一般来说,它是一个无菜单、无工具栏窗口。所以可以在桌面上打开一...
Win2K下的Api函数的拦截

Win2K下的Api函数的拦截

Win2K下的Api函数的拦截2008-01-05这么多高手在这里,哎,小弟愿意向各位高手学习。Api拦截并不是一个新的技术,很多商业软件都采用这种技术。对windows的Api函数的拦截,不外乎两种方法,第一种是Mr. Jeffrey Richter 的修改exe文件的模块输入节,种方法,很安全,但很复杂,而且有些exe文件,没有Dll的输入符号的列表,有可能出现拦截不到的情况。第二种方法就是常用的JMP XXX的方法,虽然很古老,却很简单实用。本文一介...
BCB控件制作和消息处理

BCB控件制作和消息处理

BCB控件制作和消息处理2008-01-051 前言作为和delphi类似的rad(rapid application development)工具,c++ builder的强大功能不仅体现在数据库开发方面,也凸现于应用程序开发上(令人称绝的是这两方面结合得非常好)。仅就应用程序而言,要真正体现c++ builder的优势,开发出高质量的软件,则在拖拉拽放之外,尚需用到一些进阶技术。如消息处理、dll、ole、线程、sdk编程。c++ builder在这些...
<< 171 172 173 174 175 176 177 178 179 180 >>