Delphi读取人物名字的问题
procedure TForm1.FormCreate(Sender: TObject);var
Num: Cardinal;
begin
Ghwnd := FindWindow('TianLongBaBu WndClass', '天龙八部 0.88.0898 (网通-华北网通一区:居庸关)'); //获取窗口
if Ghwnd = 0 then
begin
ShowMessage('游戏未启动');
Application.Terminate();
end;
GetWindowThreadProcessId(Ghwnd, ProcID); //进程ID
ProcessID := OpenProcess(PROCESS_ALL_ACCESS, False, ProcID); // 进程句柄
if ProcessID = 0 then
begin
showMessage('无法打开线程');
Application.Terminate();
end;
ReadProcessMemory(ProcessID, Pointer(baseadr), @ECXI, 4, Num);
ReadProcessMemory(ProcessID, Pointer(ECXI + $c), @ECXI, 4, Num);
ReadProcessMemory(ProcessID, Pointer(ECXI + $154), @ECXI, 4, Num);
ReadProcessMemory(ProcessID, Pointer(ECXI + $4), @ECXI, 4, Num);
ReadProcessMemory(ProcessID, Pointer(ECXI + $8e8), @r_HP, 4, Num); //血
ReadProcessMemory(ProcessID, Pointer(ECXI + $950), @r_MAXHP, 4, Num); //血最大值
ReadProcessMemory(ProcessID, Pointer(ECXI + $8ec), @r_mp, 4, Num); //蓝
ReadProcessMemory(ProcessID, Pointer(ECXI + $954), @r_maxmp, 4, Num); //蓝最大值
ReadProcessMemory(ProcessID, Pointer(ECXI + $5c), @r_level, 4, Num);
ReadProcessMemory(ProcessID, Pointer(ECXI + $30), @r_Name1, 4, Num);
ReadProcessMemory(ProcessID, Pointer(r_Name1), @r_Name, 10, Num);
labhp.Caption:=inttostr(r_hp)+'/'+inttostr(r_maxhp);
labmp.Caption:=inttostr(r_mp)+'/'+inttostr(r_maxmp);
lablevel.Caption:=inttostr(r_level)+'级';
LabName.Caption:=r_Name;
CloseHandle(ProcessID); //关闭进程句柄
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;
end.
在网上找的代码 自己改的 名字不能显示 求 高手指点一二 szName: array of Char;
ReadProcessMemory(ProcessID,Pointer(r_Name1),Pointer(
@szName),sizeof(szName),Num);
直接这样就可以了 ReadProcessMemory(ProcessID, Pointer(ECXI + $30), @r_Name1, 4, Num);
ReadProcessMemory(ProcessID, Pointer(r_Name1), @r_Name, 就是这里sizeof(), Num);
页:
[1]