自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(47)
  • 收藏
  • 关注

转载 实现编辑控件的增量搜索

前言 增量搜索(又叫渐进搜索)是我比较喜欢的一种搜索方式,这种一边输入一边搜索的模式常常能更快的找到关键字,特别是在关键字记 得不全的时候。大部分代码编辑器都提供了增量搜索的功能,比如Delphi,VS。在Delphi,我用得最多的快捷键几乎就是Ctrl+E了。 这几天突然心血来潮,研究了一下增量搜索的原理,成果就是这篇文章,这大概不是最好的实现,不过从搜 索...

2010-03-30 21:12:00 201

转载 程序员的灯下黑:重知识轻技术

电视《雍正王朝》讲了这么一个故事:大将军年羹尧奉命到青海平叛,清军因路途遥远,军耗巨大,因此力求速战速决。但叛军避开锋芒,东躲西藏,年羹尧没有办法找到叛军决战。这时,朝廷内外压力越来越大,年羹尧陷入困境。这是一位谋士对年说:我知道叛军在那里。年大喜。这位谋士指出,敌人就在不远处的一座皇封寺庙里。年不信,谋士不慌不忙地说:这就是灯下黑,离自己越近就越不可能意识到,但却是最可能的地方。果然,...

2009-09-13 12:03:00 124

转载 纯真IP数据库格式详解(转)

网络上的IP数据库以纯真版的最为流行,LumaQQ也采用了纯真版IP数据库做为IP查询功能的基础。不过关于其格式的文档却非常之少,后来终于在网上找到了一份文档,得以了解其内幕,不过那份文档寥寥数语,也是颇为耐心才读明白。在这里我重写一份,以此做为LumaQQ开发者文档的一部分,我想还是必要的。本文详细介绍了纯真IP数据库的格式,并且给出了一些Demo以供参考。 Luma, 清华大学...

2009-09-09 16:59:00 135

转载 Delphi开发嵌入式IE浏览器监控程序

随着网络的发展和普及,对网络的监控日益成为网络安全的必然要求,也是管理和维护网络的一个有效手段。当前已经有多种应用比较广泛的网络监控和过滤程序,如美萍网管、we-blocker等,它们都可以实现基于网络URL和IP地址的监控和过滤功能。  本文将对如何开发一个嵌入到IE浏览器中的监控程序进行介绍,该程序可以根据网络URL和IP地址进行监控和过滤,并且记录系统日志,从而使你对IE(当然是使...

2009-08-28 22:59:00 187

转载 转:用Delphi开发过滤特定网址的BHO插件

浏览器辅助对象BHO(Browser Helper Object)是一种ATL COM对象,由IE在启动时自动加载。BHO运行在IE的地址空间内,能对IE中可访问对象的各类事件消息进行监听并作出相应处理。因此,当IE已成为进入网络世界的主要大门时,BHO自然变得炙手可热,不管是扩展IE功能的辅助软件还是令人深恶痛绝的流氓软件,都对BHO青睐有加。那么,用于扩展IE功能的BHO插件到底如...

2009-08-28 22:55:00 130

转载 Delphi外壳拖放控制扩展

当你的系统安装了Winzip之后,当把任意一个文件拖放到ZIP文件上后,你会发现鼠标的光标变成了一个+字符号样,你一松开鼠标,就会调用Winzip询问你是否要把拖放的文件加入当前的Zip文件里去,可是我们试了一下别的文件却没有这种功能,这表明缺省情况下,文件不是拖放目标,那么Winzip是如何做到的? 实际上只要实现一个被拖放的文件类的拖放扩展就可以很简单地做到了。当一个文...

2009-08-28 22:53:00 131

转载 外壳执行操作记录器

记录外壳的活动 记录外壳活动有很多好处,比如当需要监控用户的行为,回溯系统崩溃前的过程。实现这一功能的关键工具相当简单,它就是COM接口 IShellExecuteHook。编写一个实现了这一接口的COM对象后,再在系统中注册,就可以容易地控制并影响Windows外壳的运行。 Windows 98和Windows 2000都支持IShellExecut...

2009-08-28 22:52:00 132

转载 外壳搜索扩展

Windows外壳支持几种搜索功能,允许用户定位命名空间对象(如文件、局域网上的电脑、打印机、回收站等),那么我们可不可以自己创建一个搜索引擎并注册到系统来搜索特定的对象呢?答案是可以的,但这需要实现搜索扩展。 搜索扩展的工作方式 用户可以有两种方式来实现搜索引擎,第一种是从开始菜单调用查找,可以显示一个当前可用的搜...

2009-08-28 22:50:00 71

转载 外壳命名空间扩展

一般介绍 很多人一定用过ZipMagic,对它能把一个压缩文件映射成文件夹感到很奇怪,不知道它使用了什么技术,实际上它用到的技术就是实现了一个外壳的命名空间扩展(Shell Namespace Extention)。 文件夹和视图:资源管理器的基本结构 资源管理器的界面显示为两部分:左边显示的是对象在外壳命名空间的位置,它们是以树结构显示的,通常认为左边显示的应该是...

2009-08-28 22:49:00 135

转载 Delphi之面向对象的界面复用技术

代码复用和界面复用 面向对象的编程思想强调代码的可复用。而Delphi的精髓实际上就是Object Pascal语言,Object Pascal语言是一个非常强大的面向对象的编程语言,可以通过对象的继承实现代码复用。同时Delphi作为一个强大的RAD开发工具,不仅可以实现代码复用,还可以实现可视化界面的复用。 基于复制粘贴的界面重用 Delphi最早提出的复用不是面向...

2009-08-28 22:46:00 260

转载 高级停靠(Dock)技术的实现

介绍 所谓停靠就是可以用鼠标拖动窗体或者控件,并将其从一个父窗体移出或者移动到另一个父窗体上,可以按水平,垂直方向整齐排列, 并且可以停靠在分页控制组件上。下面的示意图是一个Delphi IDE的窗口停靠示意图: 考察一些常用的软件如Office等大型软件,会发现大多提供窗体停靠的功能。微软的MFC很早就引入了工具条的拖放功能,可以将工具条上窗口上边拖放到窗口下边。而Borland则...

2009-08-28 22:45:00 238

转载 创建3721样式的Google搜索扩展

介绍 用过3721的人都知道,当我们在地址栏中直接输入一个非网址的中文名字后,3721搜索引擎可以获得我们输入的中文名字进行查找,并提供一个同中文名字匹配的搜索结果列表。3721的这项功能其实并不神秘,我们可以通过IE的地址搜索扩展来实现。所谓搜索扩展就是当用户在IE地址栏中或通过链接连接到一个没有指定协议的字符串(如hubdog.csdn.net,这里没有指定http协议),IE首先会...

2009-08-28 22:44:00 107

转载 IE异步可插入协议扩展

介绍 对于每天都要使用的IE浏览器的人来说,输入www.google.com 等网址进行网上冲浪就象呼吸一样自然。大多数情况时,我们可能根本想不起来要在网址前面加上http:// 来声明要访问的是一个基于http协议的Web网站。所谓网络协议,其实无非就是一组描述如何获取不同资源并进行通讯的行为规则。IE浏览器除了内置了对http协议外,还持ftp和gopher等协议。 从IE4开始...

2009-08-28 22:44:00 110

转载 阻断弹出式广告的BHO

介绍 随着网络免费的大潮的退去,网站变得越来越商业化。浏览一些常去的网站,每看一个页面都会弹出N多的广告窗口,而且都是花花绿绿的Flash和Gif小动画,浪费带宽(我在家还是拨号上网),同时干扰了正常的阅读,非常讨厌。那么如何才能将这些广告屏蔽掉呢?答案就是Browser Helper Object(简称BHO)。 BHO实际上也是一个简单的IE扩展COM组件,它和其它COM组件的区别...

2009-08-28 22:43:00 80

转载 Delphi开发IE下载扩展

介绍 大家都知道,在使用IE浏览页面时,经常需要下载一些文档和页面,我们可以选中连接然后点击右键菜单中的目标另存为…菜单,并弹出另存为对话框,我们可以将文件保存在指定目录下。见下图: 从IE6开始,我们可以编写自定义的扩展,截获目标另存为的动作,对下载进行更好地处理了。比如,IE的下载本身非常慢,那么我们可以注册一个下载扩展,对所有要通过另存下载的文件使用多线程下载,增加下载的...

2009-08-28 22:42:00 147

转载 自动填表的IE面板插件

简介 IE的面板实际就是嵌入到IE浏览器中的子窗体。面板有两种显示模式,一种是垂直显示在浏览器的左侧,一种是水平显示在浏览器的下方。IE浏览器内置提供了很多的标准面板,如收藏夹和搜索面板这些是垂直的面板,而每日提示和讨论面板则是水平的面板。 此外我们还可以通过实现COM组件来添加我们自己的浏览器面板到IE中。当我们的面板COM组件注册后,它会被添加到浏览器的查看菜单的浏览器栏的子菜...

2009-08-28 22:41:00 162

转载 使用Delphi开发IE按钮扩展

介绍 除了可以向IE中添加自定义菜单外,我们还可以向IE的工具条上添加自定义的按钮。自定义按钮同自定义菜单COM扩展的实现几乎一样, 除了在注册时需要添加的注册表项不同。 注意:同菜单扩展一样,自定义的按钮扩展也必须是IE5及以后的版本才支持。 创建COM组件 下面我们要创建的IE工具条按钮要稍微复杂一些,当点击时,不再只是显示一个简单的对话框了,而是让当前浏览器浏览我的个人网...

2009-08-28 22:39:00 94

转载 IE菜单扩展

介绍 向IE中添加的自定义菜单,可以被用来执行可执行文件,脚本语言和COM对象的方法,对于前两种执行方式,相对比较简单,只需要对注册表进行编程就可以了,但是能够执行的功能非常有限,而使用COM组件扩展IE菜单则相对复杂,但是能够执行的功能也相对是最强大的,所以下面我就主要介绍基于COM的菜单扩展方式,还要注意的一点是只有IE5及以后的版本才支持菜单的扩展。 创建COM组件 对于一个IE菜...

2009-08-28 22:39:00 118

转载 初探Delphi中的插件编程

插件结构的编程需要一个插件容器来控制各DLL的运行情况,将划分好的每个子系统安排到一个DLL库文件中。对每个DLL程序需要为容器预留接口函数,一般接口函数包括:启动调用DLL库的函数、关闭DLL库的函数。通过接口函数,插件容器可以向DLL模块传递参数实现动态控制。具体实现细节我将在下文说明并给出响应代码。  您可能需要先了解一下DELPHI中UNIT的结构,工程的结构。本文没有深入讨论D...

2009-08-28 22:38:00 73

转载 使用Delphi开发IE右键菜单扩展

介绍 IE除了允许我们添加自定义的主菜单外,还允许在右键菜单中添加自定义的菜单,。很多著名的网络软件如网络蚂蚁,、网际快车等都在右键菜单中添加了可以用来下载文件的快捷菜单。IE的右键菜单扩展同其它COM扩展不太一样,其它扩展只要在注册表中填写一定的配置信息就可以使用了,而右键菜单扩展必须由一个JavaScript脚本来创建并调用其中的方法。由于我们的COM组件必须能从脚本语言中创建,因...

2009-08-28 22:37:00 137

转载 基于Delphi的BHO开发基础

在Windows操作系统上,我们最常见的浏览器有两种:文件浏览器(exploer.exe,应用于文件系统)和Internet浏览器(iexplore.exe,应用于互联网资源)。由于这两个浏览器功能强大,而且又与Windows操作系统捆绑销售,最终也就成为了浏览器的标准。但有时候,为了给浏览器加入一些新的特性,我们往往会重新设计一个自己的浏览器。新的浏览器模仿标准浏览器的大部分功能,同时...

2009-08-28 22:35:00 135

转载 子、主线程之间消息发送

unit UDept; interface uses Windows, Messages, SysUtils, Variants, Classes, Forms; Const MSG_UpdateSuccess=WM_User + 1; type //数据同步线程 TThreadUpdateData = class(TThread) public...

2009-08-28 16:05:00 102

转载 delphi窗口的双缓冲绘制浅析收藏

有时,在有大量图片或者复杂的界面下,会出现界面闪烁。这是由于windows默认在绘制界面前会用背景色清空,然后重绘。 因为默认背景色一般是白色的,当重绘速度慢时,看起来界面就在闪烁了。 那有没有在不提高界面绘制速度的情况下,防止闪烁呢,常用的办法就是启用双缓冲机制。 双缓冲绘制,就是在内存预先绘制好图形,再拷贝到界面上。中途不再清白背景。 delphi的wincontrol组件提供了双缓...

2009-08-28 16:04:00 116

转载 模拟按键批量发送函数

从一个序列号自动输入程序里找到的好东西.procedureMySendKeys(Keys:PChar); procedureSendKeyDown(VKey:Byte); varScanCode:Byte; begin ScanCode:=Lo(MapVirtualKey(VKey,0)); keybd_event(VKey,ScanCode,0,...

2009-08-28 15:53:00 102

转载 建立快捷方式的函数: CreateShortcut

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Bu...

2009-08-28 15:45:00 103

转载 后台调用外部程序的完美实现

后台调用外部程序的完美实现 收藏 后台调用外部程序的完美实现转载:http://www.delphibbs.com/keylife/iblog_show.asp?xid=29480最近在做的一个软件,其中有一部分功能需要调用其它的软件来完成,而那个软件只有可执行文件,根本没...

2009-08-20 21:56:00 152

转载 WinXP启动过程内幕

这篇文章是摘抄自《非安全黑客手册上的》,感觉对自己挺有用就抄下来了,文章版权属于原作者。一、自检和初始化部分1.加电自检(Powser On Self Test,Post),cpu复位 功能是检测电脑是否良好,通常完整的post自检包括对Cpu、640K基本内存、1M以上的扩展内存、ROM、主板、CMOS存储器、显示卡、软硬盘子系统、各种插接口(串口、并口、USB口)和输入设备进行测...

2009-08-12 20:27:00 119

转载 winsock 函数声明大全

一、 基本Socket函数1.accept()* //响应连接请求,并且新建一个套接字,原来的套接口返回监听状态 accept(s: TSocket; addr: PSockAddr; addrlen: PInteger): TSocket; stdcall;2.bind() // 把一个本地的名字和无名的套接字捆绑起来 bind(s: TSocket; var add...

2009-08-10 20:56:00 137

转载 Winsock常用结构

//===================//1. sockaddr_in结构//===================sockaddr_in = record case Integer of 0: (sin_family: u_short; //u_short即Word类型,这里必须设置成AF_INET sin_port: u_short; sin...

2009-08-10 20:54:00 83

转载 Socket的错误码和描述(中英文翻译)

//下面是Socket Error的错误码和描述:Socket error 0 - Directly send error Socket error 10004 - Interrupted function //call 操作被终止 Socket error 10013 - Permission denied //c访问被拒绝 Socket error 10014 - Bad a...

2009-08-10 20:53:00 220

转载 初学Delphi嵌入汇编 总结

初学Delphi嵌入汇编是万一老师写的一个学习Delphi+ASM的系列// Delphi函数中,使用eax,edx,ecx分别表示前三个参数 // 32位返回值直接由eax返回 function add(x,y: Integer): Integer; asm ADD EAX,EDX end; 记得前面学习过 Delphi 的过程和函数默认的调用约定是 Register , 前三个参...

2009-07-13 17:46:00 159

转载 学汇编有感

这几天一直在学习王爽的那本汇编语言,书算是基本上看完了,这本书的确是很适合学汇编的新手。我学汇编的主要目的是想更深入的学习windows和编写更好的软件,所以我在一边学习《汇编语言》一边学习看雪老大出的那本经典的《加密与解密》。《汇编语言》学完了后再看那本厚厚的《加密与解密》就基本上能看懂了(当然了,如果你也看的话还要学点c语言)转载于:https://www.cnblogs.c...

2009-07-13 17:42:00 97

转载 《汇编语言》学习笔记-2 待续...

1. flag寄存器是按位起作用的,每一位都有专门的含义2. 其实cpu是执行add等指令时,就已经包含了两种含义(有符号数和无符号数,关键是我们需要不需要SF、CF、OF等标志)。CF记录无符号,OF记录有符号,SF记录结果的符号3. 补码运算时,先看两个操作数的最高位是不是1,然后算出相应的十进制4. 8086CPU用称为中断类型码的数据来表示中断信息的来源,中断类型码为一个字节的数...

2009-07-13 17:31:00 71

转载 《汇编语言》学习笔记-1

1. 一个字由两个字节组成,可以存在一个16寄存器中,这个字的高位字节和低位字节分别存在这个寄存器的高8位 寄存器和低8位寄存器中。2. 一个内存单元可以存放8位数据,cpu中的寄存器又可以存放N个8位的数据,所以计算机中的数据大多是由1到N 个8位.3. 数据构成的,用16禁止可以直观的看出这些数据由哪些8位数据组成。4. 8位寄存器最大可以存放值为255的数据,16...

2009-07-13 17:30:00 110

转载 80X86寄存器介绍

32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)6个段寄存器(ES、CS、SS、DS、FS和GS)1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)1、数据寄存器数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。32位CPU有4个...

2009-07-13 17:27:00 69

转载 汇编指令长度计算方法

指令长度与寻址方式有关系,规律或原则如下:一、没有操作数的指令,指令长度为1字节。如es:ds:cbwxlat等。二、操作数只涉及寄存器的指令,指令长度为2字节。如mov al,[si]mov ax,[bx+si]mov ds,ax等。三、操作数涉及内存地址的指令,指令长度为3字节。如mov al,[bx+1]mov ax,[bx+si+3]lea di,[1234]mov [2345]...

2009-07-13 17:25:00 734

转载 常用汇编指令集合

-----------------------算数运算指令-----------------------ADD 加法ADC 带位加法SBB 带位减法SUB 减法.INC 加法.NEC 求反(以0减之). NEG 求反然后加1,假如NEG AL相当于Not AL;...

2009-07-13 17:24:00 95

转载 BIOS和DOS中断大全

BIOS和DOS中断大全中断INT 21H :1、字符功能调用类(Character-Oriented Function)01H、07H和08H —从标准输入设备输入字符02H —字符输出03H —辅助设备的输入04H —辅助设备的输出05H —打印输出06H —控制台输入/输出09H —显示字符串0AH — 键盘缓冲输入0BH —检测输入状态0CH —清输入缓冲区的输入功能(1)、功能...

2009-07-13 17:21:00 104

转载 hostent结构体介绍

使用这个东西,首先要包含2个头文件:#include #include struct hostent *gethostbyname(const char *name);这个函数的传入值是域名或者主机名,例如" www.google.com","wpc "等等。传出值,是一个hostent的结构(如下)。如果函数调用失败,将返回NULL。struct hostent { char *h...

2009-06-26 19:53:00 338

转载 Delphi 关键字详解

absolute//它使得你能够创建一个新变量, 并且该变量的起始地址与另一个变量相同.var Str: string[32]; StrLen: Byte absolute Str;//这个声明指定了变量StrLen起始地址与Str相同.//由于字符串的第0个位置保存了字符串的长度, 所以StrLen的值即字符串长度.begin ...

2009-06-25 12:23:00 75

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除