摘要: 键盘钩子处理函数: 首先键盘钩子处理函数的函数名是可以自定义的 ,例如:MyKeyboardProc() 函数原型: LRESULT CALLBACK KeyboardProc( int code, WPARAM wParam, LPARAM lParam ); 参数: code: 根据这个数值决定怎样处理消息 如果 code 小于0,则 必须让KeyboardProc()函数返...
阅读全文
摘要: bool是LongBool类型。Delphi中定义了四种布尔类型:Boolean,ByteBool,WordBool和LongBool。后面三种布尔类型是为了与其他语言兼容而引入的,一般情况下建议使用Boolean类型。这四种类型的布尔值占用内存的数量如下:Boolean 1 ByteByteBool 1 ByteWordBool 2 Bytes(1 Word)LongBool 4 Bytes(2...
阅读全文
摘要: HOOK钩子详细介绍 基本概念 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,...
阅读全文
摘要: 内存块赋值函数。 定义:Procedure FillChar ( Var X; Count : Longint; Value : Char or Byte); 意为:对一个Char类型的数组X进行Count次赋值,当Value为Char类型时,直接赋值;若Value为Byte类型时,将Value作为AscII赋值给每个单元。 被引申为:对一个内存块,每8个二进制位赋值Value,赋值Coun...
阅读全文
摘要: CopyMemory() 函数功能描述:将一块内存的数据从一个位置复制到另一个位置 函数原型 VOID CopyMemory( PVOID Destination, CONST VOID *Source, DWORD Length ); 参数 Destination 要复制内存块的目的地址。 Source 要复制内存块的源地址。 Length 指定要复...
阅读全文
摘要: FindWindow,Win32 API函数。 FindWindow函数返回与指定字符串相匹配的窗口类名或窗口名的最顶层窗口的窗口句柄。这个函数不会查找子窗口。 函数原型: HWND FindWindow ( LPCSTR lpClassName, LPCSTR lpWindowName ); 参数表: lpClassName 指向一个以null结尾的、用来指定类名的字符串或...
阅读全文
摘要: OpenFileMapping VB声明 Declare Function OpenFileMapping Lib "kernel32" Alias "OpenFileMappingA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As Long 说明 打...
阅读全文
摘要: CloseHandle函数 BOOL CloseHandle( HANDLE hObject ); 参数 hObject :代表一个已打开对象handle。 返回值 TRUE:执行成功; FALSE:执行失败,可以调用GetLastError()获知失败原因。 函数说明: 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等。在CreateThread成功之...
阅读全文
摘要: VB声明 Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" (lpMutexAttributes As SECURITY_ATTRIBUTES, ByVal bInitialOwner As Long, ByVal lpName As String) As Long VC声明 HANDLE CreateMut...
阅读全文
摘要: 函数功能:该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。 函数原型:LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam); 参数: hWnd:其窗口程序将接收消息的窗口的句柄。...
阅读全文
摘要: MapViewOfFile, MapViewOfFileEx VB声明 Declare Function MapViewOfFile& Lib "kernel32" (ByVal hFileMappingObject As Long, ByVal dwDesiredAccess As Long, ByVal dwFileOffsetHigh As Long, ByVal dwFil...
阅读全文
摘要: CreateFileMapping VB声明 Declare Function CreateFileMapping Lib "kernel32" Alias "CreateFileMappingA" (ByVal hFile As Long, lpFileMappigAttributes As SECURITY_ATTRIBUTES, ByVal flProtect As Long, By...
阅读全文
摘要: VC声明 DWORD WaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds ); VB声明 Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Lon...
阅读全文
摘要: var s:string; pc:pchar; pb:pbyte; ac:array[1..100] of char; ab:array[1..100] of byte; i:integer; begin s:='this is a test'; pc:=pchar(s); //string->pchar pb:=pbyte(pc); //pchar->pbyte for i:=1 t...
阅读全文
摘要: 要把一个Form编译进DLL,这个Form必须要自己创建和释放。由于源代码分为几个部分,这里写下dll的关键代码:function showform(handle1:THandle):Boolean;stdcall;var form3:TForm1;begin Result:=True; form3:=TForm1.Create(nil); Application.Handle:=handle1;...
阅读全文
摘要: TFrame的一个功能可以进行功能的封装,就像一个组件一样,它能够把一组功能包装在一起,实现这组功能的复用,甚至可以把一个应用程序封装到一个TFrame,然后在其它地方引用它;TFrame的另一个功能是,它提供了一种拆分和组合应用程序的途径,可以把一个比较大,而且有较独立模块的应用程序拆分为多个Fframe,然后分发给不同的人做,最后把所有的Frame组合在一起,作为一个整体的应用程序。源程序代码...
阅读全文
摘要: 把一个窗体或者控件变成可以停靠只需要两步:(1)把DragKind特性设置为dkDock。(2)把DragMode特性设置为dmAutomatic。另外,TPanel控件有一个UseDockManager特性,如果为Ture,它的作用是将停靠在上面的控件的尺寸扩充为Panel的大小,即充满全部Panel空间。演示代码:新建一个VCL form工程,加入界面代码:object Form1: TFor...
阅读全文
摘要: 小东西,初学delphi练习下手。源代码如下:------------------------------------------------------------------------unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialo...
阅读全文
摘要: 主要演示了TApplicationEvents.OnMessage 的第二个参数 Handled 如果是 True, 表示消息已经处理过了, 到此为止.代码如下:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, AppEvn...
阅读全文
摘要: 源代码:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private declarations } public { Public de...
阅读全文
摘要: 源代码:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private declarations } public { Public de...
阅读全文
摘要: 提交地址:http://www.hackpig.cn/aspbbs/post2.aspHTTP头信息:POST /aspbbs/post2.asp HTTP/1.1Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/msword, application/vnd.ms-excel, application/vnd...
阅读全文
摘要: 代码文件:--------------------------------------------------------------------------------unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtr...
阅读全文
摘要: 淘宝的宝贝描述页是ajax异步载入的,所以直接idhttp读一下是弄不到它的源码的。用下面的方法就可以。代码如下:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls,SHDocVw, ExtCtr...
阅读全文
摘要: 问题的由来:我有两个asp文件 a.asp内容: <html> <head> </head> <body> <formaction="b.asp"method=posttarget="_self"> <P><INPUTid="Text1"type="text"name="Text1"> <INPUTid="S...
阅读全文
摘要: MSHTML是微软公司的一个COM组件,该组件封装了HTML语言中的所有元素及其属性,通过其提供的标准接口,可以访问指定网页的所有元素. MSHTML对象模型是由一些对象和集合组成的.处于根部的是HTML,描述了打开页面的1个窗口,包括一系列集合和对象。如Frames集合,History,Location,Navigator,Document,Vi—sum,Event对象等.其中描...
阅读全文
摘要: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, SHDocVw; type TForm1 = class(TForm) WebBrowser1: TWebBrowser; Memo1...
阅读全文
摘要: 程序界面 测试是在本机测试的,注意不能是127.0.0.1或者localhost,不然idhttp会罢工。由于测试论坛没有几篇文章,所以“下一页”,其实只读取了第一页。上一页还没做呢,呵。源代码:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Control...
阅读全文
摘要: function IIF<T>(Condition: Boolean; TrueValue: T; FalseValue: T): T; begin if Condition then result := TrueValue else result := FalseValue; end;注:Delphi 2009\2010 支持泛型,其它版本不支持。真的很方便!不过好像不能直接...
阅读全文
摘要: 法一:利用TWebBrowser组件 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, SHDocVw; type TForm1 = class(TForm) WebBrowser1: ...
阅读全文
摘要: 在 Delphi 中使用正则表达式, 目前 PerlRegEx 应该是首选, 准备彻底而细致地研究它.官方网站: http://www.regular-expressions.info/delphi.html直接下载: http://www.regular-expressions.info/download/TPerlRegEx.zip二、安装方法:1、先把解压的 TPerlR...
阅读全文
摘要: 在程序中使用TWebbrowser控件或者Indy中控件连接采用Ajax技术的网页,获得的网页源码中并不会有客户端更新的内容。在IE浏览器中的查看源文件同理也是看不到Ajax更新的内容。通过插件可以看到Ajax更新后的内容。问题是在程序中怎样来获得完整的网页内容?如果有Ajax更新,Webbrowser的DocumentComplete事件也不会被触发。其实完整的网页内容并不是不可以获得,使用一个...
阅读全文
摘要: //增加项或列(字段)ListView1.Clear;ListView1.Columns.Clear;ListView1.Columns.Add;ListView1.Columns.Add;ListView1.Columns.Add;ListView1.Columns.Items[0].Caption:='id';ListView1.Columns.Items[...
阅读全文
摘要: 今天做的一个项目中要使用一大串数据进行处理。如何对这一系列的数据进行保存成为一个首要的问题。唉,Delphi啊,你何时才能支持泛型啊。在C#,C++这都不是问题了啊。在Delphi里只有TStringList这个容器可以使用,但是它是处理字符串的。一进一出,需要大量的typecast时间。用链表??不值得。上网一查,呵呵,可以用动态数组。看来我还是一个新手,这个东西我都不知道啊。啥时候Delphi...
阅读全文
摘要: 如何在delphi里面控制Edit只能输入数字━━━━━━━━━━━━━━━━━━━━━━━━━━if not (key in ['0'..'9',#8]) then key := #0;只能输入汉字,而不能输入数字或其他字符━━━━━━━━━━━━━━━━━━━━━━━━━━在Edit的OnKeyPress事件中 procedure TForm1.Edit1KeyPress(Sender: TO...
阅读全文
摘要: 源代码:-------------------------------------------------------------------------unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,StrUt...
阅读全文
摘要: {location 对象:}reload //重新加载当前文档replace //用新的文档替换当前文档assign //加载新文档href //设置或返回完整的 URLprotocol //设置或返回当前 URL 的协议host //设置或返回 # 号开始的 URL(锚)hostname //设置或返回当前 URL 的主机名port //设置或返回当前 URL 的端口号pathname //设置...
阅读全文
摘要: WebBrowser 操作记要 WebBrowser1.GoHome; //到浏览器默认主页 WebBrowser1.Refresh; //刷新 WebBrowser1.GoBack; //后退 WebBrowser1.GoForward; //前进 WebBrowser1.Navigate('...'); //打开指定页面 WebBrowser1.Navigate('about:blank');...
阅读全文
摘要: 借助 TWebBrowser 可以把软件做的更漂亮、更灵活, 很多软件已经或者早就这样做了.尽管 HTML DOM 内容繁杂(涉及到 HTML、JavaScript、CSS), 但也都属于 TWebBrowser 的功能范围.使用 TWebBrowser 时, 如果配合上 MSHTML, 将会有很好的代码提示; 不然也可以, 就是写代码困难.HTML DOM 中的一切都是源于一个叫 window ...
阅读全文
摘要: 这是在页面下载完毕后即刻获取:--------------------------------------------------------------------------------unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialo...
阅读全文
摘要: {IHTMLDocument2 方法:}write //写入writeln //写入并换行open //打开一个流,以收集 document.write 或 document.writeln 的输出close //关闭并输出用 document.open 方法打开的流clear //清空文档中所有元素, 可能暂时不支持q...
阅读全文
摘要: 源代码如下:unit Unit2;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, SHDocVw;type TForm2 = class(TForm) WebBrowser1: TWebBrowser; Butt...
阅读全文
摘要: 1.获取网页中变量的值例如:htm中<script> var currIDS=123</script>程序中可以这样调用 id := Form1.WebBrowser1.OleObject.Document.script.currIDS 备注:变量可以是javascript定义的,也可以是vbscript定义的,如果Webbrowser1中找不到该变量,调用会触发一个异常事...
阅读全文
摘要: 在DELPHI为编程者提供了一个灵活的绘图场所,即本文所述的CANVAS类,在DELPHI中的很多控件都具有此属性,使编程者可以在这些的控件的表面随心所欲的绘图,这对完善用户界面或者制作一些屏幕特技都有着非凡的作用,下面举例说明几种特殊屏幕效果的形成过程。一、CANVAS必备基本知识:1.具有CANVAS属性的控件:TBitmap,TComboBox,TDBComboBox,TDBGrid,TDB...
阅读全文
摘要: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,Perl...
阅读全文
摘要: 问题的由来:先申明,我不是 DELPHI 的三星,达到3星后各个板块的级别都一样的。在 DELPHI 里面我只是个新手,只学了DELPHI 8天,希望大家帮忙 try ... excetpt on e:Exception do 中的 E 是哪里来的?凭空出来的?怎么没在帮助里面找到说明?E是继承某个类么?这里只有 E.MESSAGE,难道没有错误号么? 我如何根据 E...
阅读全文
摘要: function CreateThread( lpThreadAttributes: Pointer; {安全设置} dwStackSize: DWORD; {堆栈大小} lpStartAddress: TFNThreadStartRoutine; {入口函数} lpParameter: Pointer; {函数参数} dwCreationFlags: DWORD; {启动选项} var lpTh...
阅读全文
摘要: 最近写了几个网站的验证码图片自动识别程序,尽管每个网站的验证码图片都不相同,识别的方法有所差别。但写得多了,也总结出不少相同之处。今天抽空封装出一个基础类来,发现可以很好地重复利用,编写不同的验证码识别程序,效率提高了不少。好东东不能独享,现放出来供大家共同研究,请网友们妥善用之。封装后的类使用很简单,针对不同的验证码,相应继承修改某些方法,即可简单几句代码就可以实现图片识别了: GrayByPi...
阅读全文
摘要: IdHTTP_Thread := TIDHTTP.Create; IdHTTP_Thread.ReadTimeout := 240000; IdHTTP_Thread.ConnectTimeout := 240000; IdHTTP_Thread.Request.UserAgent :='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; ....
阅读全文
摘要: 写HTML解释部分的时候,需要在一个完整的URL中,提取出该URL的路径,如http://www.515800.cn/blog/index.asp需要提取出http://www.515800.cn/blog/这个路径出来,这个如果在VB/VBS中,使用InStrRev函数,很容易就可以实现,但在Delphi中,虽然经常用Pos来判断字符的的位置,但从来没有看到过PosRev之类的函数,查了帮助也没...
阅读全文
摘要: 一、字符转换函数1、ASCII()返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。2、CHAR()将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值,CHAR() 返回NULL 。3、LOWER()和UPPER()LO...
阅读全文
摘要: 一、引子:现在的Windows应用程序几乎都使用图标、图片、光标、声音等,我们称它们为资源(Resource)。最简单的使用资源的办法是把这些资源的源文件打入软件包,以方便程序需要的时候调用。资源是程序的一部分,程序要正常运行就离不了资源文件。但是它是不可执行代码。为了更好地管理资源,Delphi中提供了一种.RES类型的资源文件。它可以把我们程序中所需要的资源整合到一个资源文件(.RES)下来。...
阅读全文
摘要: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP;type TForm1 = ...
阅读全文
摘要: 当我们不在使用某个对象时,必须将这个对象从内存空间中删除,这样可以避免不必要的数据浪费内存空间。Object Pascal类的对象构造方法必须以保留字"Constructor”取代"Function"或"Procedure";对象的析构必须使用保留字"Destructor"。 由于类的声明分为两种:继承Delphi内建类的Class类 和 完全自定义的object类,因此类的构造和析构...
阅读全文
摘要: Delphi的类声明有两种方法,一种是继承了Delphi的内建类的声明,另一种则是完全自定义的类声明。这两种类的区别不仅在于声明程序的不同,还会影响到对象实体的内存管理。1unitUnit1;23interface45uses6Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,7Dialogs,StdCtrls,B...
阅读全文
摘要: 代码如下:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) start: TButton; Memo1: TMemo; procedure startClick...
阅读全文
摘要: //打开控制台io.open() t={};//table插入元素table.insert(t,"windows");table.insert(t,"linux");table.insert(t,"unix");for(k,v in t){io.print(v);}t1={};t1[1]=11;t1[2]=22;t1[3]=33;//范型输出table元素 for(k,v in t1){io.pr...
阅读全文
摘要: 讲解哈希表,就需要与一般的数组作对比的讲,这样更能说明哈希表。我们都知道,数组是一个下标(数字)与一个值得对应,给出数组某一合法下标,就会得到数组在这个下标下存储的值;而哈希表就类似是用名字代替下标的一个特殊的数组。只要给出哈希表中某一个合法名字的值,就能找到与这个名字对应的,哈希表中的一个值。举个例子说明数组与哈希表:有一个数组array,他有3个元素,这个数组存储了3个城市的当天的气温,arr...
阅读全文
摘要: 从delphi的角度看Google(谷歌)URL编码解码方式在网上搜索了一下,似乎没有什么关于google的URL编码解码的很详细的资料,因此在这里写一下,希望给有用的人提供一点帮助。使用google谷歌搜索一下关键词,对应的编码如下:刀:%E5%88%80刀具:%E5%88%80%E5%85%B7刀具网:%E5%88%80%E5%85%B7%E7%9A%84因此可见,google对URL的编码并...
阅读全文
摘要: CodeRush,今年已经第五次荣登Delphi Informant 杂志读者评选三方插件的头筹。下面介绍一下此插件的一般使用方法。(本人较懒,另外水平也有限,不正之处望各位同仁不吝指出^_^)关了Delphi,安装CodeRush,相信不会很困难的。装完了,CodeRush就和Delphi IDE融为一体了,启动之后就会出现一个新的Delphi 开发界面。当然现在还是看不出什么花头的。现在就让我...
阅读全文