看流星社区

 找回密码
 注册账号
查看: 2781|回复: 1

[Delphi] delphi新手 怎么用监视热键 来使用一个CALL

[复制链接]

该用户从未签到

发表于 2011-4-4 10:20:11 | 显示全部楼层 |阅读模式
怎么用delphi监视热键 来使用一个CALL 谁有例子 给个学习学习

该用户从未签到

发表于 2011-4-4 10:20:27 | 显示全部楼层
unit HJmain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
procedure addManey();stdcall;
type
  TForm1 = class(TForm)
    lbl1: TLabel;
    edt1: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
aatom:atom;
procedure hotkey(var msg:tmessage);message wm_hotkey;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure addmy ;
var
  h:HWND ;
  pid,hProcessID:THandle  ;
  calladdr:Pointer ;
  writeByte:DWORD ;
begin
  h:=FindWindow(nil ,'Red Alert 2');
  GetWindowThreadProcessId(h,pid);
  hProcessID :=OpenProcess(PROCESS_ALL_ACCESS ,False,pid);
  //在游戏进程分配内存
  calladdr :=VirtualAllocEx(hProcessID ,nil,MAX_PATH,MEM_COMMIT OR MEM_RESERVE,PAGE_EXECUTE_READWRITE);
  WriteProcessMemory(hProcessID ,calladdr ,@addManey,MAX_PATH ,writeByte );
  CreateRemoteThread(hProcessID ,nil,0,calladdr ,nil,0,writeByte );
  end;
procedure TForm1.hotkey(var msg:tmessage);
begin
if (msg.LParamHi=VK_F1)  then // 判断是否按F1  
begin
        addmy ;                                  //执行 子程序
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
   aatom:=GlobalAddAtom('hotkey');
   RegisterHotKey(Form1 .Handle ,aatom,0,VK_F1);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
    globalDeleteatom(aatom);
end;
procedure addManey();stdcall;
var
   shuju:DWORD;
begin
asm
  mov eax,$00a35db4
  mov eax,[eax]
  add eax,$24c
  add [eax],$FFFF
  //mov eax,[eax]
  //mov shuju,eax       //远程置入 不传递变量
end;
Form1.edt1.Text :=IntToStr(shuju);
end;
end.
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-3-29 15:16

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表