文章分类 - Delphi API
Delphi 函数
摘要:http://hi.baidu.com/wayintolove/blog/item/ad1dc3034b108780d53f7c5a.html为了让人能快速的理解 静态调用、动态调用,现在做一个函数封装在一个DLL中,然后在APPLICATION form里面调用这个函数,这个函数处理两个数的和。用...
阅读全文
摘要:我们在用Delphi编译完程序,准备发布产品时,总希望随产品发布个性信息以标示产品的来源以及开发者等信息,就像windows的程序一样,使我们一看属性就知道他是微软的产品,这些在Delphi中是如何实现的呢?下面我就来给大家演示和说明给exe,dll文件添加版本信息的方法。第一,给exe文件添加版本...
阅读全文
摘要:另外两种多线程的同步方法 CriticalSection(临界区) 和 Mutex(互斥), 这两种同步方法差不多, 只是作用域不同;CriticalSection(临界区) 类似于只有一个蹲位的公共厕所, 只能一个个地进;Mutex(互斥) 对象类似于接力赛中的接力棒, 某一时刻只能一个人持有,...
阅读全文
摘要:钩子的类型总共15种,每种钩子处理不同的消息(这个资料很多,自己看下)。 钩子用SetWindowsHookEx安装,放在DDL中,有全局钩子的,比如键盘,鼠标等,也可以是线程的,指定窗口的(不是很准确,但实用)。是全局还是指定,主要是看SetWindowsHookEx中的参数设置:全局时:第三个参...
阅读全文
摘要://类单位unit Person;interfacetypeTPerson = class(TObject)private FName: string; FAge: Integer;public procedure SetName(const strName: string); proced...
阅读全文
摘要:function UniCode2GB(S : String):String;Var I: Integer;beginI := Length(S);while I >=4 do begintryResult :=WideChar(StrToInt('$'+S[I-3]+S[I-2]+S[I-1]+S...
阅读全文
摘要:中文 转 unicode 说白了就是将单个字符,例如:“网页”的页字 用 Ord函数转成 10进制数字,再转为16进制数据。就这样。其实,用系统的计算器,科学型计算,也可以计算出来。//Char类型与其编码值的转换:varb:Byte;c:Char;beginb:=Ord('A');{返回:65}b...
阅读全文
摘要:全局钩子是必须用DLL导出函数做的!但是线程钩子是可以做在程序里的!当全局钩子触发的时候,系统去DLL里寻找相关的触发函数!而不是在程序内部寻找的!所以假如你把钩子函数写在自己的程序内部,只能在你的程序是活动窗口的时候,消息才被触发的!但是你让程序失去输入焦点,钩子函数就会失效的!我很理解LZ的想法...
阅读全文
摘要:程序实现 (1)抓取屏幕图像的难点有两个:一是如何夺取屏幕的句柄,二是知道屏幕句柄后如何获取屏幕的图像。Borland公司的设计人员用画布(Tcanvas)对象封装了Windows的大部分图形输出功能,可以通过它以更直观的方式和Windows的屏幕打交道,而不必关心令人头疼的Windows API...
阅读全文
摘要:{抓屏幕图像,保存为内存流--BMP流,压缩BMP流,JPG流,以及使用流}{在网络中传送BMP流和JPG流的速度没测试过}{BMP流的压缩是无损压缩}{全局变量memoryStream:TMemoryStream;memoryStream:=TMemoryStream.create;}varima...
阅读全文
摘要:var ExeName:PChar; StartupInfo:TStartupInfo; ProcessInfo:TProcessInformation;begin FillChar(ProcessInfo,sizeof(TProcessInformation),0); FillChar(Start...
阅读全文
摘要:声明:function LastDelimiter ( const Delimiters, Source : string ) : Integer;描述:LastDelimiter函数查找在Source字符串中Delimiter集合中任一字符最后出现的位置。如果找到,则返回位置值,否则,返回0。备注...
阅读全文
摘要:以上方法可以说是相对偏一些,我是基于一些网友提供的想法来实现的,另外其实还可以直接使用Combobox本身的东西来实现,这个感觉上更正宗一点,也不需要用到’额外'的控件了。使用Combobox提供的AddItem的方法:[delphi]view plaincopyprint?procedureAddItem(Item:String;AObject:TObject);Item:添加项的字符串值。AObject:关联的对象。AddItem方法添加项目,并同时与AObject对象进行关联,并可以读取、修改被关联对象,这里我们就利用它这一特性,把项目的真实值给关联到每一个项去,就实现了显示内容
阅读全文
摘要:procedure TForm1.btn1Click(Sender: TObject);var i:integer; s:string;begin for i:=0 to memo1.Lines.Count -1 do //循环Memo表的所有行 begin s:=memo1.Lines[i];//用S变量才暂时存储这个量,最后一步恢复用 memo1.Lines.Delete(i);//去除比较字符串 while memo1.Lines.IndexOf(s)>-1 do//如果大于-1就说明找到了,进行下一步的删除 memo1.Lines.Delete(memo1.Lines.Index
阅读全文
摘要:百折不挠2011-04-02, 10:43:15进行DLL注入时发现,注入的DLL中的函数只能调用预先放在DLLMAIN中的函数,这样注入的DLL编写很不灵活,能不能注入目标进程后,根据不同的需要在目标进程中远程调用DLL中的不同函数?比如:DLL中导出三个函数a()b()c()如果要注射后调用a函数,就要把a放在dllmain中,而且只是一次性的,注入完成后要再让目标进程调用b函数的话,要怎么办??问题在于,要调用函数b,就要在目标进程中找到函数b的地址,要怎么动态的取得函数b在目标进程中的地址?e枚举出目标进程中加载的DLL模块句柄,再用GetProcAddress好象不行。-CamelL
阅读全文
摘要:前言:学习HOOK中,万一老师讲解HOOK入门教程:http://www.cnblogs.com/del/category/124150.html正题:全局HOOK拦截大部分键盘消息,Ctrl+alt+del 同Num Lock 目前测试无法截获。写全局Hook基本步骤:因为为全局Hook,要用到dll,以后就不知道需要不…………一.创建dll1.声明同实现回调函数2.创建安装钩子函数3.创建卸载钩子函数4.按照dll格式输出函数二、创建exe调用dll源代码:///////////////////////////dll代码///////////////////////////////////
阅读全文
摘要:运算符列表详解 推荐阅读:http://www.cnblogs.com/del/archive/2007/12/10/989467.html
阅读全文
摘要:1字节等于8位,是8位二进制位移动了一位,等于4字节,4个8位 等于32位。各种流在存取、操作数据的机理上都是一样的。说白了,就是“无类型”,它不管你是整型、字符串型、图象、还是声音,只要你告诉它要读写的数据的首地址和长度,就可以了。也正是由于这个原因,使用流读写数据的速度都比较快。Delphi之所以还要派生出各种各样类型的流,其实就是为了使操作某些具体类型的数据时更方便、更容易一些而已。比如:TMemoryStream中有个Memory属性,它就是这块内存的首地址,使得我们直接操作内存变得方便了;TStringStream中有个DataString属性,使我们象读一个字符串一样读取整个流..
阅读全文
摘要:如果我们在Form中拖入一个Image控件,并设置好picture后,Alt+F12就可以看到Form的源代码中已经将图片转成了16进制字符串,如下:http://www.pfeng.org/archives/290那么在实际的应用中如何实现把图片转16进制呢,可以参考以下转换PNG的例子,其他格式的图片转换都基本类似:?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647uses pngimage;{从 png 图片到十六进制字符串}function Png2Hex(png:
阅读全文
摘要:TJpegImage 跟 TImage都是类TImage是可视化控件 就是你拖到form上能看到而TJpegImage只是生成一个graphic对象,是无法直接显示的TImage有一个Graphic对象,默认是只可以装载bitmap图像的就是bmp图片但是可以给TImage的grapic赋一个jpeg的graphic对象来实现 Timage装载jpg图像具体代码如下varjpg: TjpegImage; jpg := TJpegImage.create;jpg.loadfrom('文件路径')Image1.picture.assign(jpg);jpg.free;百度知道:ht
阅读全文