- 博客(35)
- 收藏
- 关注
原创 AtomicBoolean 源码分析
AtomicBoolean 源码分析成员变量value private volatile int value;volatile 修饰,因为value 多线程会改变数值,这里用int 类型1,0表示boolean 的 true 和falseunsafeprivate static final Unsafe unsafe = Unsafe.getUnsafe();使用Unsafe的方...
2019-12-10 23:08:54 127
原创 函数的地址 和 函数大小
procedure p1();beginend; procedure p2();beginend; 取的一个函数的地址 memo1.Lines.Add( Format(%x,[dword(@p1)])) ; 取的一个函数的大小 memo1.Lines.Add( Format(%x,[dword(@p1)])) ; memo1.
2011-06-30 09:50:00 1045 1
原创 根据计算机名称获得ip地址
<br />function LookupName(const Name: string): string; var HostEnt: PHostEnt; begin HostEnt := gethostbyname(PChar(Name)); if HostEnt <> nil then begin with HostEnt^ do begin Result:=Format('%d.%d.%d.%d', [Ord(h_addr^[0]), Ord(h_addr^[1]),Ord( h_addr^[2]),
2010-12-19 13:01:00 730
原创 Printer的学习
<br />GetDeviceCaps(Printer.Handle,LOGPIXELSX);获得水平方向每英寸多少个点<br />GetDeviceCaps(Printer.Handle,LOGPIXELSY) 获得竖直方向每英寸多少个点<br />像我的的打印机hp <br />GetDeviceCaps(Printer.Handle,LOGPIXELSX);=600<br />GetDeviceCaps(Printer.Handle,LOGPIXELSY);=600<br />A4纸的尺寸是210x2
2010-12-14 17:16:00 814
原创 进程注入方法之 CreateRemoteThread
<br />function TForm1.InjectDll(ThreadId: DWORD; DllFilename: string): Boolean;<br />var<br /> hProcess ,hThread :THandle;<br /> pszLibFileRemote:PChar;<br /> dwMemLen:DWORD;<br /> dwWrited:DWORD;<br /> pfnThreadRtn:Pointer;<br /> dwThreadId:DWORD;<b
2010-12-09 16:58:00 718
原创 进程注入方法之 hook
<br />library Project1;<br />{ Important note about DLL memory management: ShareMem must be the<br /> first unit in your library's USES clause AND your project's (select<br /> Project-View Source) USES clause if your DLL exports any procedures or<br />
2010-12-09 16:55:00 741
原创 修改已有的应用程序
<br />FindControl <br />函数可以通过句柄得到TwinControl类<br />FindVclControl<br />函数可以通过绝对坐标得到TWinControl类<br />FindVclControl内部还是调用了FindControl 函数,<br />使用这几个函数就可以修改别人的程序类,哈哈。<br />但是他们有使用的限制<br />1、只能是Delphi或bcb程序<br />2、在同一个进程中,别人的程序,不同进程怎么办呢,当然了进程注入。<br />3、在注入的
2010-12-09 16:52:00 2342
原创 ADO CacheSize的疑问
<br />ADO CacheSize的疑问<br /> <br />在看李维Delphi.5.X.ADO.MTS.COM+高级程序设计篇 第4章中说<br />在Client-Side Cursor 是,设置CacheSize 是有效果,<br /> <br />实际测试时,我用ado连接一个MS-SQL2005 的表,表中有3万多记录<br />在使用Client-Side Cursor 下,cachesize =1 和 CacheSize=1000 打开这个表的时间都是一样的,没有变化<br />
2010-12-06 21:41:00 1019
原创 ADO连接池
<br />ADO连接池<br />unit unADOConnectionPool;<br />interface<br />uses<br /> Windows,ADODB;<br />const<br /> MAX_CONNECTION_COUNT=5;<br />type<br /> TADOConnectionPool=class<br /> private<br />// _CirticalSection:TCriticalSection;<br /> _Connection
2010-10-21 14:27:00 1569
转载 Delphi下Label中文字体显示不全问题的解决办法
有时候把Label的AutoSize属性设置为True,当窗体显示的时候,Label中的内容可能会显示不完全,只能把AutoSize设置为False,把Label调整成能显示出内容的大小。还有一种更简单的解决方法。把Form的Font属性进行如下设置:字体为宋体,字号为小五,字形为常规,字符集为“CHINESE_GB2312”,把Label的ParentFont设置为True即可!
2010-10-18 15:18:00 1138
原创 CM_MOUSEENTER 和 CM_MOUSELEAVE 消息分析
<br />在TControl 类中有自定义的消息<br /> procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;<br /> procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;<br />在我们写控件的时候,可以显示鼠标进入或移除控件的特效<br />但是CM_MOUSEENTER 和CM_MOUSELEAVE消息是什么
2010-10-13 17:16:00 1594
翻译 ExtractStrings 使用方法
<br />function ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar; <br />Strings: TStrings<br />): Integer;<br />描述<br />ExtractStrings 用空结尾的Content的子字符串填充一个字符串列表<br />Separators 是一个用来截断、分割子字符串的字符集合. 回车、新行、引用字符都是分隔符<br />. Separators 出现引用字符
2010-10-11 09:42:00 2397
转载 CreateRemoteThread 使用
<br />先解释一下远程进程,其实就是要植入你的代码的进程,相对于你的工作进程(如果叫本地进程的话)它就叫远程进程,可理解为宿主。<br /><br />首先介绍一下我们的主要工具CreateRemoteThread,这里先将函数原型简单介绍以下。<br /><br />CreateRemoteThread可将线程创建在远程进程中。<br /><br />函数原型<br />HANDLE CreateRemoteThread(<br /> HANDLE hProcess,
2010-10-07 12:34:00 959
原创 TserverSocket 分析3
<br />2/ stNonBlocking<br />介绍stNonBlocking之前,要先介绍TserverClientWinSocket<br />TServerClientWinSocket.Create 中<br /> inherited Create(Socket);<br /> if FServerWinSocket.ASyncStyles <> [] then DoSetAsyncStyles;<br /> <br />TserverClientWinSocket 是从TcustomW
2010-09-26 22:18:00 854
原创 TserverSocket 分析2
<br />线程池Threadsize 只有ServerType为stThreadBlocking才有效<br />TServerClientThread.Create 的时候调用ReActivate<br />FServerSocket.AddThread(Self);<br />,在AddThread中<br /> if FActiveThreads.IndexOf(AThread) < 0 then<br /> begin<br /> FActiveThreads.Add(ATh
2010-09-26 22:17:00 562
原创 TserverSocket 分析1
<br />TserverSocket 分析<br />Servertype 有两个值stNonBlocking 和stThreadBlocking<br />1、 先讨论stThreadBlocking<br />这种类型的server 从字面意思上看有thread,他一定使用了线程了<br />在TServerWinSocket.Listen 中<br /> if FConnected and (ServerType = stThreadBlocking) then<br />FServerAcce
2010-09-23 22:49:00 1010
原创 实现窗口透明
<br />procedure TForm1.FormCreate(Sender: TObject);<br />begin<br />TransparentColor:=True;<br />TransparentColorValue:=25;<br />Color:=Form1.TransparentColorValue;<br />BorderStyle:=bsNone;<br />end;
2010-09-14 12:09:00 402
原创 运行期实现控件移动和缩放
<br />unit Unit1;<br />interface<br />uses<br /> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,<br /> Dialogs, StdCtrls, ExtCtrls;<br />const<br /> SETONW_CHANGE=0;<br /> STOS_CHANGE=1;<br /> SWTONE_CHANGE=2;<br /> ETOW_CH
2010-09-13 15:09:00 573
原创 使用7z压缩解压数据
<br />1、下载sevenzip.pas,添加到lib路径<br />2、把7z.dll复制到你工程的目录下<br />3、例子代码<br />procedure Encode_7z( Source:TStream;Dest:TStream );<br />var<br /> Arch: I7zOutArchive;<br /> tmsStream:TMemoryStream;<br />begin<br /> Arch := CreateOutArchive(CLSID_CFormat7z);<
2010-09-10 15:01:00 2073
原创 TIdHTTP 使用 编写秒杀
<br />TIdHTTP 编写秒杀很简单,最主要是分析post的数据,<br />下载httpwatch ,先试着提交一次,通过分析post数据,查找post数据的规律<br /> <br />unit Unit1;<br />interface<br />uses<br /> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,<br /> Dialogs, StdCtrls, IdBaseCompone
2010-08-10 17:59:00 1311 1
翻译 Assigned 函数
<br />Assigned <br />测试空指针或过程变量没有赋值<br />单元<br />System<br />语法<br />function Assigned(const P): Boolean;<br />描述<br />Assigned 用来判断指针或这个过程P是nil。P必须是一个指针或过程变量。 Assigned(P) 相当测试指针变量<br />P<>nil ,或 过程变量@P<>nil。<br />如果P 是nil 返回false ,否则位true<br />注意<br />Ass
2010-08-05 18:07:00 1088
翻译 DivMod 方法
<br />DivMod <br />返回除法后的整数部分,和余数<br />单元<br />Math<br />语法<br />procedure DivMod(Dividend: Integer; Divisor: Word; var Result, Remainder: Word);<br />描述<br />调用DivMod ,生成一个16位的除法<br />Dividend 是被除数<br />Divisor 是除数<br />Result 是整数返回值<br />Remainder 是余数返回值
2010-08-05 14:45:00 2196
翻译 Frac函数
<br />Frac<br />返回实数的小数部分<br />单元<br />System<br />语法<br />function Frac(X: Extended): Extended;<br />描述<br />在delphi中,Frac函数返回参数X的小数部分<br />X是一个实数表达式。返回值是X的小数部分;也就是说Frac(X) = X - Int(X).<br />例子<br />var<br /> R: Real;<br />begin<br /> R := Frac(123.456)
2010-08-05 14:32:00 28509
转载 Delphi中的线程类
<br />Delphi中的线程类 <br /> <br />转贴于 华夏黑客同盟 http://www.77169.org<br /><br />Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对<br /><br />TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchronize的用法就完了。然而这并不是多线程编<br />程的全部,我写此文的目的在于对此作一个补充。<br /><br />线程本质上是进程
2010-07-23 13:56:00 462
原创 flex actionscript 和 javascript 通讯(3) 整合例子
前面说了单独的调用,现在补上一个整合的例子flex 中 import mx.controls.Alert; private function init():void{ ExternalInterface.addCallback("actionScriptSay", actionScr
2007-06-15 13:47:00 1465
原创 flex 文件上传
flex 的文件上传也可以通过 FileReference来实现要比文件上传麻烦一些。例子如下: private var file:FileReference=new FileReference(); private function onClick():void{ file
2007-06-15 10:19:00 1138
原创 flex 的多国语言化
在工程的目录下建立locale目录,再在local建立个个国家的目录,如ch-GB,en_US,ja_JP,在这些目录下放入一个文件,名字是strings.properties,内容格式key=value 举例如下:aaa = dbbb = cccc = bddd = a注意值 如果是汉字请用/u+unicode编码表示,举例 :下一个 用/u4e0b/u4e00/u4e2a表示。使用方式
2007-06-14 13:58:00 1505
原创 flex 下载文件
flex中下载文件下载文件是很简单的,使用这个FileReference类即可,3行代码即可,在实验中发现没有反应,在反复测试中终于找到了原因。在flex中下载文件是异步的,你要把FileReference类的生存周期设的更长一下才可以。下面把代码贴出来http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor
2007-06-12 08:49:00 14480 7
原创 flex 屏蔽鼠标右键
屏蔽FLEX右键菜单以及实现自定义的FLEX右键功能 完全屏蔽FLEX右键菜单比当初想象的要难一些,因为大多数FLEX文档中仅仅介绍了如何隐藏一部分FLEX右键菜单,例如: var contextMenu : ContextMenu = new ContextMenu(); contextMenu.hideBuiltInItems(); // 隐藏一些内建的鼠标右键菜单项 但是这个功能
2007-06-12 08:18:00 3894 4
转载 IIS配置支持Amfphp的Web应用
我们仅以Windows XP、IIS 5.1和Amfphp 1.9 beta 2为例讲述。一、安装PHP1. 下载到http://www.php.net/下载PHP 5.2.1 zip package,将其解压缩到硬盘。2. 添加.php映射打开Internet 信息服务>默认网站>属性>主路径>配置>添加,在弹出的对话框中设定可执行文件php5isapi.dll的位置,设定
2007-06-08 13:39:00 1442
原创 flex 和webService 通讯
在flex中和webservice是很简单,使用Webservice类就好了。先说一下他的使用呀 web=new WebService();//这是一个webservice的地址; web.wsdl = "http://www.webservicex.net/globalweather.asmx?wsdl"; web.loadWSDL();这样就已经连接上了
2007-06-08 11:11:00 6198 2
原创 flex actionscript 和 javascript 通讯(2) javascript调用 actionscript的函数
上次说完actionsript调用javascript的函数,这次来说一下javascript调用actionsript的函数。这个功能要使用ExternalInterface.addCallback( functionName:String, closure:Function):void 函数functionName 是要注册的函数名字,也就是javascript可以使用的函数名字,
2007-06-07 16:14:00 1903
原创 flex actionscript 和 javascript 通讯(1) actionscript 调用javascript的函数
actionscript 想和javascript 通讯,要使用 ExternalInterface 类ExternalInterface.call(functionName:String, ... arguments):* 用来调用 javascript中的函数functionName 是javascript中的函数名字argumnets 如果那个函数是带参数的,输入函数的参数
2007-06-05 15:04:00 2725
原创 flex 播放mp3
研究类flex 中的声音类,做了个播放mp3的工具呵呵,现在把源码贴出来。 http://www.adobe.com/2006/mxml" layout="absolute" initialize="OnClick()"> import flash.media.*; import mx.events.SliderEvent ; private var _type:int=2;
2007-06-04 10:22:00 4061 2
原创 flex Container添加child
学习flex 有一周了,说一下心得吧想panel这些控件都是 Container这些类继承下来,想加入一个child的话要调用addChild函数,参数是DisplayObject类型,但是如果是如果真是DisplayOject类型的话,有运行错误,主要原因是Container已经override这个函数了,在里面判断这个类必须实现了IUIComponent接口,也就是说你添加的类必须是U
2007-06-04 10:16:00 1756
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人