易截截图软件、单文件、免安装、纯绿色、仅160KB

Delphi Register Test

var
Form1: TForm1;
a, b, c: Integer;
implementation
{$R *.dfm}
procedure test1(x, y, z: integer);
asm
mov a,eax
mov b,edx
mov c,ecx
end;
procedure test2(x, y, z: integer);
var
i,j,k: integer;
asm
mov i,eax
mov j,edx
mov k,ecx
mov eax,[esp+8]
mov a,eax
mov eax,[esp+4]
mov b,eax
mov eax,[esp+0]
mov c,eax
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
test2(1,2,3);
ShowMessage(Format('%d,%d,%d', [a, b, c]));
end;
end.
new
var
Form1: TForm1;
a,b,c,d,e: Integer;
implementation
{$R *.dfm}
procedure test1(p1,p2,p3,p4,p5: integer);
asm
mov a,eax
mov b,edx
mov c,ecx
mov eax,[esp+$0c]
mov d,eax
mov eax,[esp+8]
mov e,eax
end;
procedure test2(p1,p2,p3,p4,p5: integer);
var
i,j,k: integer;
asm
mov i,eax
mov j,edx
mov k,ecx
mov eax,[esp+8]
mov a,eax
mov eax,[esp+4]
mov b,eax
mov eax,[esp+0]
mov c,eax
mov eax,[esp+$0c+$8+4]
mov d,eax
mov eax,[esp+$0c+$8+0]
mov e,eax
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//test1(1,2,3,11,5);
test2(1,2,3,7,8);
ShowMessage(Format('%d,%d,%d,%d,%d', [a, b, c, d, e]));
end;
end.


相关文档:

Delphi与Flash之间的数据传递技巧


要实现这一功能,首先要用到ActiveX控件中的TShockwaveFlash控件。
首先让我们来将TShockwaveFlash控件加入到Delphi的组件面板中(没有装Flash的朋友可以从网上下载一个Flash8.ocx文件来进行安装)
1.打开Delphi(本人用的是Delphi7.0)点击菜单中的Component->Import ActiveX Control...
2.在弹出的窗口中的Import ......

DELPHI 实现内存修改的方法


注意:本文仅供技术交流,请勿用于非法用途。
要修改指定程序的指定地址数据,我们需要用到两个api函数,分别是ReadProcessMemory和WriteProcessMemory。
下载是函数的定义:
ReadProcessMemory
Reads data from an area of memory in a specified process. The entire area to be read must be accessible or the op ......

一名Delphi程序员的开发习惯

一.建立工程目录
   首先,第一步要做的,当然是给新项目建一个单独的目录(别笑)。目录名称与项目名称同名,或者另取一个也可,只要清楚、简练。然后,在此目录中创建以下各个目录:
   <Doc>:用来存放该项目相关的开发文档(需求说明,概要设计,详细设计等等等等);
   < ......

Delphi实现操作Excel示例

implementation
uses ComOBJ;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var ExcelAPP1:Variant;
    ExcelApp2:Variant;
    I,j: Integer;
    ID,IDX:string;
begin
try
  ExcelAPP1:=CreateOleObject('Excel.Application');
  E ......

Delphi结束进程模块

uses Tlhelp32;
function KillTask(ExeFileName: string): integer;
const
  PROCESS_TERMINATE = $0001;
var
  ContinueLoop: BOOLean;
  FSnapshotHandle: THandle;
  FProcessEntry32: TProcessEntry32;
begin
  Result := 0;
  FSnapshotHandle := CreateToolhelp32Snapshot(T ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号