現在時鐘取內存得 會得到 正常的血量
但是作判斷時
if (strtoint(form1.Ge_now.Text) <= strtoint(form1.Ge_ifnow_edit.Text)) and (form1.checkBox2.Checked = true) then
他完全無視取得的數值, 一直在瘋狂地吃蘗
strtoint(form1.Ge_now.Text) 是當前內存取得血量
strtoint(form1.Ge_ifnow_edit.Text) 是少於多少就吃個血
跪求解決
///////////////////多線程///////////////////
constructor autofu.create();//實現構造
begin
freeonTerminate:=true;//當執行完後是否自動銷毀
inherited create(false);//false表示是否掛起,這裡直接執行execure方法
end;
procedure autofu.Execute;//線成執行實體
const
resource_on: dword = 1;//
resource_off: dword = 0;//
yy1:dword = 1;
yy0:dword = 0;
var
GameH:HWND;
GamePid,text:DWORD;
ReadByte:SIZE_T;
Gamehprocess: THandle;
rra: DWORD;
begin
delay(150);
GameH:=FindWindow(nil,'xxxx');
GetWindowThreadProcessId(GameH,GamePid);
Gamehprocess:=OpenProcess(PROCESS_All_Access,False,GamePid);
ReadProcessMemory(Gamehprocess,Pointer($xxxx),@Text,4,ReadByte);
ReadProcessMemory(Gamehprocess,Pointer(Text+$1E0C),@Text,4,ReadByte);
ReadProcessMemory(Gamehprocess,Pointer(Text+$34C),@rra,4,ReadByte);
form1.Ge_now.Text:= inttostr(rra);
delay(500);
if (strtoint(form1.Ge_now.Text) <= strtoint(form1.Ge_ifnow_edit.Text)) and (form1.checkBox2.Checked = true) then
form1.Ge_now_lb.Font.Color :=clRed;
form1.ge_ifnow.Font.Color :=clBlue;
GameH:=FindWindow(nil,'GE___');
GetWindowThreadProcessId(GameH,GamePid);
Gamehprocess:=OpenProcess(PROCESS_All_Access,False,GamePid);
ReadProcessMemory(Gamehprocess,Pointer($xxxx),@Text,4,ReadByte);
ReadProcessMemory(Gamehprocess,Pointer(Text+$xxx),@Text,4,ReadByte);
WriteProcessMemory(Gamehprocess,Pointer(Text+$C),@resource_on,4,ReadByte);
delay(500);
SendMessage(Gameh, WM_MOUSEMOVE,0,MAKELPARAM(501,308));
delay(500);
WriteProcessMemory(Gamehprocess,Pointer($xxxxxx),@yy1,4,ReadByte);
delay(200);
WriteProcessMemory(Gamehprocess,Pointer($xxxxx),@yy0,4,ReadByte);
delay(500);
WriteProcessMemory(Gamehprocess,Pointer(Text+$xxxx),@resource_off,4,ReadByte);
delay(150);
GameH:=FindWindow(nil,'Gersang');
GetWindowThreadProcessId(GameH,GamePid);
Gamehprocess:=OpenProcess(PROCESS_All_Access,False,GamePid);
ReadProcessMemory(Gamehprocess,Pointer($10axxxx),@Text,4,ReadByte);
ReadProcessMemory(Gamehprocess,Pointer(Text+$xxxx),@Text,4,ReadByte);
ReadProcessMemory(Gamehprocess,Pointer(Text+$xxx),@rra,4,ReadByte);
form1.Ge_now.Text:= inttostr(rra);
delay(500);
end;
///////////////////////////////////////////
procedure TForm1.CheckBox3Click(Sender: TObject);
const
resource_on: dword = 1;//
resource_off: dword = 0;//
yy1:dword = 1;
yy0:dword = 0;
var
GameH:HWND;
GamePid,text:DWORD;
ReadByte:SIZE_T;
Gamehprocess: THandle;
rra: DWORD;
begin
if checkBox3.Checked = true then
begin
autofull:=autofu.create();
Timer1.Enabled :=True;
end
else
begin
autofull.DoTerminate();
Timer1.Enabled :=False;
end;
end;
uj5u.com熱心網友回復:
叫GM來
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/131925.html
上一篇:delphi 陳述句問題
