Delphi 编写【数字签名验证】并获取签名信息
一个客户想通过编程实现验证程序自身的数字签名来确保程序的完整性,防范病毒感染以及防止一些无聊人士的修改(通过十六进制编辑器替换一些版权、网址、LOGO..); 为此我做了一个数字签名验证的小例子,其中也有获取签名者信息的方法,以满足“自验证”的需求...
使用delphi 开发多层应用(九)客户端使用事务更新多个表数据到kbmMW服务器
上次说明了客户端如何把变化的数据更新到服务器端,但是在实际应用中,往往是要同时更新若干个表,为了保证逻辑上一致,这些表的操作要么都一次成功,要么全部失败,这就需要使用事务处理。我们今天就来说一下,怎么在kbmMW中实现事务处理。同时也顺便讲一下kbmMW 里面命名查询(named query)的使用...
B编码以及BT种子文件分析
去年年末的时候,有个朋友说要做一个BT协议的上传和下载,要俺帮忙,于是在那个时候搜寻了各种关于种子文件的文件格式资料。顺便整了一个BT格式的分析类库出来。目前,貌似朋友那便没说要继续整BT协议的上传和下载了,估计大概换了协议吧,呵呵。所以这个放在手里也用处不大了,刚好又很久没写博了,这个就作为当年的...
一组文件名(主要以数字命名), 我想按数字大小排序
uses System.IOUtils, System.Types, System.Generics.Collections, System.Generics.Defaults, System.Character;procedure StrArrNumberSort(var Arr: TArray&...
使用delphi 开发多层应用(八)客户端更新数据到kbmMW服务器
上次写了从kbmMW服务器给客户端返回数据,我们实现了数据的查询功能,但是当客户端对数据进行了增加、更新、删除的操作,我们必须把这些操作返回到服务器端,并对后台数据库进行更新。kbmMW 可以很方便的实现这一功能,今天就做一个更新数据到服务器的例子。 还是在昨天的基础上,我们要把客户端的信息更新到服...
Delphi XE2 运行时包再次重新编译
年后相对闲一点,安装了 Delphi XE2,试着把她的 rtl (Run Time Library) 重新编译一下,把 .dpk 存此备忘,注意其中使用了 NameSpace。 包含 rtl160.bpl 和 vcl160.bpl。注意其中的 system.pas 是不需要的,它会被每次自动链接到...
使用delphi 开发多层应用(七)简单的kbmMW多层数据库访问服务
刚写完几个多层的例子,本来准备再写点其他稍微复杂的例子,很多同学就问数据库访问的方法,既然这样,就先写一下数据库访问的过程与方法。kbmMW 支持很多数据库访问方式和控件,前面在安装时已经说过了。由于delphi 已经在d7 以后不再推荐使用其传统的数据库方式BDE了,尤其是在delphi XE2 ...
重新编译 vcl70.bpl
这是阿亮第一次写文章,有不正确的地方,欢迎讨论指正。 首先要更正一个错误的结论:只要程序用到Borland的包,就必须要带上VCLxx.bpl。 非也! 想必用Dll来实现功能模块分割的伙计们都有痛苦经历:无法导出类;无法共享主进程的全局变量;调用Dll时可能要传递一大堆参数;令人心烦的PChar;...
判断程序是否在虚拟机vmware内运行
function isruninvmware(out errmsg: string): boolean;beginresult := false;try asm push edx push ecx push ebx mov eax, 'vmxh' mov ecx, $0a mov ....
16进制以下任意转换
进制的算法:program Project1;{$APPTYPE CONSOLE}uses SysUtils;//适用于16进制以下转换function Convert(N: Integer; M: Integer):string;var NumArray: array[1..15] of char...
给 System.Zip 增加了个(多文件解压时的)解压进度事件
很喜欢 System.Zip; 手头的程序需要把压缩后的一组文件从内存流解压, 这用 System.Zip 非常简单, 但我需要呈现解压进度, 同时给出当前文件名.因此给 System.Zip.TZipFile 添加了一个 OnUnZipProgress 事件.在 System.Zip 的基础上添加...
Delphi XE2 里面string 与 ansistring 转换导致kbmMW 的一个bug
昨天本来准备写一个kbmMW 做webserver 的一个例子,可是在调试过程中发现不能正常显示图片文件。跟踪了很长时间才发现是string 和 ansistring 在XE2 里面转换造成的问题,经过修改后,终于可以正常运行了。耽搁了半天时间,因此记录一下,给同学们一个参考,以后在编程时注意一下。...
Delphi常用取整函数
uses math;1.round(四舍六入五留双)1 var2 i, j: Integer;3 begin4 i := Round(1.5); // i等于25 j := Round(2.5); // j等于26 end;2.RoundClassic(传统四舍五入)3.trunc(取得X的整数部分...
使用delphi 开发多层应用(六)kbmMW返回流到客户端
在第一个简单的例子,服务器返回给客户端的是一个简单的变量,但是在日常的应用中,往往需要给客户端传输大量的数据,例如要返回流,在kbmMW 里面返回流也是比较方便的,下面我们就以给客户端返回一个照片为例,说明一下。 还是在上次的例子服务里面,我们添加一下这个功能,首先要定义服务函数处理: functi...
网上摘的 杀进程函数
需要引用单元 Tlhelp32 function KillTask(ExeFileName: string): integer; //杀进程函数const PROCESS_TERMINATE = $0001;var ContinueLoop: BOOL; FSnapshotHandle: THand...
使用delphi 开发多层应用(五)第一个kbmMW 服务例子
我们今天做一个kbmMW 简单服务,功能是客户端调用服务器端的过程,完成一个累加的功能。首先我们建立一个空白的vcl form 应用程序,并放置几个控件,如图所示:其中有三个控件,一个kbmMWSever1,一个kbmMWTCPIPIndyServerTransport1,还有一个就是启动按钮。对应...
使用delphi 开发多层应用(四)kbmMW 的安装与配置
目前的KbmMW 最新版是4.0 beta 版,它支持最新的delphi XE2 ,同时支持win32,win64,mac osx的编译开发。增加了原生的JSON 的支持(看来JSON 是越来越热了:)),同时提高了http web 的功能,作者已经用最新的KbmMW 替换了原来使用aspx 的下载...
文件操作(1)FileExists
在学习Delphi 时老是觉的文件操作用的不多,但是在后面的学习过程中,我发现我的那个想法真是太傻了。因为我本人觉的文件操作方面的知识用的太多了,不得不学习,但是在网上找了许多的关于文件操作方面的文章来看,觉的他们写的太简单了,这个简单是在介绍时只是简单的介绍一下。所以我加上了一些例子能让大家更容易...
