基于delphi的bho开发笔记

该日志由 samool 发表于 2007-10-15 9:42 AM

 终于解决了让我头疼了很久的在IE工具条上backspace和tab键无效的问题,具体的解决方法如下:(这是个demo的文件)   

主要要实现接口:IInputObject;     

    {Declare IInputObject methods here}  

    function UIActivateIO(fActivate: BOOL; var lpMsg: TMsg): HResult; stdcall; 

    function HasFocusIO: HResult; stdcall;   

    function TranslateAcceleratorIO(var lpMsg: TMsg): HResult; stdcall;   

  以及方法:

    procedure FocusChange(bHasFocus: Boolean);   

    procedure BandWndProc(var Message: TMessage);    

» 阅读该日志全文...

该日志标签: delphi, bho, 开发, ie

阻断弹出式广告的BHO

该日志由 samool 发表于 2007-10-15 9:36 AM

BHO实际上也是一个简单的IE扩展COM组件,它和其它COM组件的区别就在于其它扩展需要一些用户的手工操作,如点击菜单,点击工具条按钮,在地址栏输入 网址等等触发动作才会被IE加载。而BHO则不同,每当IE启动时,都会自动去加载BHO而无须任何触发条件,另外BHO还可以监听IE的各类事件的通知消息,比如窗 口大小的变化,下载是否完成等事件。

由于BHO可以在一启动IE就被加载,并能监听各种事件,我们就可以使用BHO扩展实现限制用户浏览某些色情网站,或者搜集用户浏览喜好信息等功能。接下来, 我们就来实现一个能够阻断广告弹出的BHO扩展。

» 阅读该日志全文...

该日志标签: delphi, bho, 浏览器, 插件

Delphi函数返回多个值

该日志由 samool 发表于 2007-10-11 4:49 PM

今天在搞一个程序中,要求返回多个值,我知道用数组使用,但以前还没有做过,于是在网上找了一下,得到这个东东,原来自己定义一个类型,然后将函数的类型设为自定义类型就可以了,我定义的是字符串数组,函数返回值当然是多个字符串了,呵呵。

可以函数过程中设定返回数组的大小,SetLength (result,5)就可以。

» 阅读该日志全文...

该日志标签: delphi, 函数, 数组, 字符串

批量删除目录和目录下得所有文件和文件夹

该日志由 samool 发表于 2007-10-09 12:08 PM

批量删除目录和目录下得所有文件和文件夹

» 阅读该日志全文...

该日志标签: delphi, 批量删除, 文件, 文件夹

不正常的定义参数对象,提供了不一致的或不完整的信息

该日志由 samool 发表于 2007-09-22 12:40 PM

今天在家里写一个采集小程序,由于新闻是英语的,SQL语句在MSSQL查询分析器中可以正常运行,但是在Delphi中用TADOQuery写入数据时,出现了“不正常的定义参数对象,提供了不一致的或不完整的信息”这个错误,检查好多遍,始终还是这个错误。

最后没有办法了,在网上查了一下“不正常的定义参数对象,提供了不一致的或不完整的信息”这个信息,发现有提示说是由于TADOQuery对象把":"后的字符当作变量来使用,导致数据识别错误。

解决方法:只要把TADOQuery.ParamCheck设置为False即可。

» 阅读该日志全文...

该日志标签: sql, adoquery, paramcheck

ASP数据库操作常用函数集

该日志由 samool 发表于 2007-09-21 10:10 AM

 ASP数据库操作常用函数集,经典的东西收藏备用。

» 阅读该日志全文...

该日志标签: asp, 数据库, 函数

COM+ 无法与 Microsoft 分布式事务协调程序交谈

该日志由 samool 发表于 2007-09-16 9:10 PM

今天安装一个三层数据结构的软件时,终始不能连接到三层服务器,就是连接不到scktsrvr.exe服务器监听端口,原来以为是端口被占用的原因,仔细查看后发现是COM+组件有问题,进入控制面板-组件服务时出现错误“COM+ 无法与 Microsoft 分布式事务协调程序交谈”,在百度知道查了一下,原来是MSDTC服务器出错了(可能是以前我把服务给删除了),解决方法:直接重新安装MSDTC服务就搞定了,在开始——运行——输入CMD进入命令行——输入msdtc -install  ,重新安装MSDTC后解决问题。附上百度知道完整解决方案。

» 阅读该日志全文...

该日志标签: msdtc, 分布式, 事务, 协调

慧眼识别“Access Violation” 错误

该日志由 samool 发表于 2007-09-07 10:25 PM

Windows用户可能经常会看到类似于错误提示:“Error:Access violation at address 836556F8. Read of address 836556F8”。作为一个Delphi程序开发者,遇到这种错误的机会比其他用户更多(^_^)。 究竟什么是“Access Violation”?如何在设计期避免它的出现?Access Violation(非法访问),General Protection Fault(一般保护性错误)或者Invalid Page Fault(无效页面错误),虽然说法不一样,但本质上总是由同一种错误引起的。Access Violation常常在计算机用户运行的程序试图存取未被指定使用的存储区时遇到。

» 阅读该日志全文...

该日志标签: access, violation, 错误

小试牛刀破解别人的软件

该日志由 samool 发表于 2007-07-31 1:54 PM

 今天中午小试牛刀,一个朋友发了一个软件给我,让我看看能不能破解,我拿到软件后,运行,用SPY++拖到界面上看了一下,原来是Delphi写的软件,这时已经有20%的把握了,再用peid看一下加壳没有,发现乌龟没顶壳,哈哈哈,这下又增加20%的把握,接着DeDe进行反编译,得到汇编代码,输出工程文件,用Delphi打开该工程,找到注册窗口,直接进入注册函数,得到如下代码,简单看了一下,直接跳过注册判断,直接注册。用OllyICE修改汇编代码,保存文件,运行,注册,随便输入注册码,注册成功,搞定,收工。

» 阅读该日志全文...

该日志标签: 破解, 汇编, 软件, 注册

TEmbeddedWB Methods2

该日志由 samool 发表于 2007-07-31 7:22 AM

TEmbeddedWB Methods2

» 阅读该日志全文...

该日志标签: tembeddedwb, methods, fillform, cookie