|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
procedure TForm1.btn3Click(Sender: TObject);
var
Num1: Cardinal;
processID1: Thandle;
ProcID1: Thandle;
Ghwnd: Thandle;
Ecxi: Cardinal;
//r_Name : Cardinal ;
data1: array[0..23] of Char;
const baseadr = $00f20d94;
begin
Ghwnd := FindWindow(nil, 'SRO_Client'); //获取窗口
if Ghwnd = 0 then
begin
ShowMessage('游戏未启动');
Application.Terminate();
end;
GetWindowThreadProcessId(Ghwnd, ProcID1); //进程ID
ProcessID1 := OpenProcess(PROCESS_ALL_ACCESS, False, ProcID1); // 进程句柄
if ProcessID1 = 0 then
begin
showMessage('无法打开线程');
Application.Terminate();
end;
ReadProcessMemory(ProcessID1, Pointer(baseadr),@ECXI,4,Num1);
ReadProcessMemory(processID1, Pointer(Ecxi+$114),@data1,23,Num1);
lbl5.Caption:= PChar(@data1);
CloseHandle(ProcessID1); //关闭进程句柄
end;
问题是: 如果游戏角色名字过长则caption显示乱码
比如当角色名字是1234567的时候能读全,完全正确
如果角色名字是12345678的时候就不能读正确显示的是乱码。
|
|