|  | 
 
| 
procedure TForm1.btn3Click(Sender: TObject);
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  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的时候就不能读正确显示的是乱码。
 
 
 | 
 |