![]() |
|
#1
|
|||
|
|||
![]() Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,IdUDPServer,IniFiles, TlHelp32, StdCtrls, ExtCtrls, Gauges, IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient, ComCtrls, mmsystem, XPMan, Buttons; type TForm1 = class(TForm) Gauge1: TGauge; Timer1: TTimer; Button1: TButton; Button2: TButton; Label1: TLabel; Label7: TLabel; Edit3: TEdit; Timer2: TTimer; Label9: TLabel; CheckBox1: TCheckBox; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure CheckBox1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var wideChars : array[0..11] of WideChar; myString : String; Form1: TForm1; //i,rw:DWord; ch:WideChar; wch:array[0..255] of WideChar; KlientWindow:HWND; //Handle клиента ProcessId:Integer; hProcess:Integer; //Идентификатор объекта HPMinValue:Integer; //Минимальное значение ХП (из Edit1) // MPMinValue:Integer; //Минимальное значение МП (из Edit2) L:Integer; // уров //Nik:TListItem; //ник // M:Integer; //бабло //Nik : String; // Nik : Integer ; // ID:Integer; sss: String; // key:string; data,rw:dword; str:string; implementation {$R *.dfm} procedure TForm1.Timer2Timer(Sender: TObject); begin if Gauge1.Progress = 0 then begin PlaySound('bietsa.wav', 0, SND_ASYNC); Label9.Caption:='Сдох (x_x)'; end else begin Label9.Caption:='Живой (^_^)'; end; end; procedure TForm1.Button1Click(Sender: TObject); var hSnap,hProc :THandle; pe:TProcessEntry32; begin sss:=edit3.text; KlientWindow := FindWindow(nil, PChar(sss)) ;//Находим Handle окна GetWindowThreadProcessId(KlientWindow,@ProcessId); //Получаем И.П. hProcess := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId); //Открываем процесс с возможностью записи Timer1.Enabled := True; Timer2.Enabled := True; end; procedure TForm1.Button2Click(Sender: TObject); begin PlaySound('c:\1.wav', 0, SND_ASYNC); Timer1.Enabled := False; Timer2.Enabled := False; end; procedure TForm1.CheckBox1Click(Sender: TObject); var hSnap,hProc :THandle; pe:TProcessEntry32; begin if checkbox1.Checked then sss:=edit3.text; KlientWindow := FindWindow(nil, PChar(sss)); //Находим Handle окна GetWindowThreadProcessId(KlientWindow,@ProcessId); //Получаем И.П. hProcess := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId); //Открываем процесс с возможностью записи Timer1.Enabled := True; Timer2.Enabled := True else Timer1.Enabled := False; Timer2.Enabled := False; end; procedure TForm1.Timer1Timer(Sender: TObject); function GetPlayerName(Local_hProc:dword):string; var HP,HPMax,MP,MPMax:Integer; WHP,WHPMax,L,WMP,WMPMax,Lvl,Nikname,Nik,M,Money,IDs,str,data,ID,Opit,O,Omax,Om,NoB:DWord; begin try//На всякий случай заключаем в try...except, дабы в случай релога не засыпать пользователя ошибками ReadProcessMemory (hProcess, Pointer($00B9029C), @WHP, sizeof(WHP), NoB); ReadProcessMemory (hProcess, Pointer(WHP+$34), @WHP, sizeof(WHP), NoB); ReadProcessMemory (hProcess, Pointer(WHP+$0494), @WHP, sizeof(WHP), NoB); //Читаем значение HP HP := Integer(WHP); //Переводим Integer ReadProcessMemory (hProcess, Pointer($00B9029C), @WHPMax, sizeof(WHPMax), NoB); ReadProcessMemory (hProcess, Pointer(WHPMax+$34), @WHPMax, sizeof(WHPMax), NoB); ReadProcessMemory (hProcess, Pointer(WHPMax+$04DC), @WHPMax, sizeof(WHPMax), NoB); //Читаем значение MaxHP HPMax := Integer(WHPMax); //Переводим Integer Gauge1.Progress := round(HP * 100 / HPMax); //Присваиваем процентное значение HP Gauge1 ReadProcessMemory (hProcess, Pointer($00B9029C), @Lvl, sizeof(Lvl), NoB); ReadProcessMemory (hProcess, Pointer(Lvl+$34), @Lvl, sizeof(Lvl), NoB); ReadProcessMemory (hProcess, Pointer(Lvl+$048C), @Lvl, sizeof(Lvl), NoB); L := Integer(Lvl); //Переводим Integer Label7.Caption := IntToStr(L); except end; end; var HP,HPMax,MP,MPMax:Integer; WHP,WHPMax,L,WMP,WMPMax,Lvl,Nikname,Nik,Local_hProc,Result,M,Money,IDs,str,data,ID,Opit,O,Omax,Om,NoB:DWord; BEGIN try//На всякий случай заключаем в try...except, дабы в случай релога не засыпать пользователя ошибками ReadProcessMemory (hProcess, Pointer($00B9029C), @WHP, sizeof(WHP), NoB); ReadProcessMemory (hProcess, Pointer(WHP+$34), @WHP, sizeof(WHP), NoB); ReadProcessMemory (hProcess, Pointer(WHP+$0494), @WHP, sizeof(WHP), NoB); //Читаем значение HP HP := Integer(WHP); //Переводим Integer ReadProcessMemory (hProcess, Pointer($00B9029C), @WHPMax, sizeof(WHPMax), NoB); ReadProcessMemory (hProcess, Pointer(WHPMax+$34), @WHPMax, sizeof(WHPMax), NoB); ReadProcessMemory (hProcess, Pointer(WHPMax+$04DC), @WHPMax, sizeof(WHPMax), NoB); //Читаем значение MaxHP HPMax := Integer(WHPMax); //Переводим Integer Gauge1.Progress := round(HP * 100 / HPMax); //Присваиваем процентное значение HP ReadProcessMemory (hProcess, Pointer($00B9029C), @Lvl, sizeof(Lvl), NoB); ReadProcessMemory (hProcess, Pointer(Lvl+$34), @Lvl, sizeof(Lvl), NoB); ReadProcessMemory (hProcess, Pointer(Lvl+$048C), @Lvl, sizeof(Lvl), NoB); L := Integer(Lvl); //Переводим Integer Label7.Caption := IntToStr(L); EXCEPT end; end; end. 1)ошибка [DCC Error] Unit1.pas(118): E2029 'END' expected but 'ELSE' found [DCC Fatal Error] Project1.dpr(9): F2063 Could not compile used unit 'Unit1.pas' не могу понять в чем ошибка весь интернет пересмотрел все варианты указанные в интеренете не подходят. 2) хотелось бы узнать почему кодReadProcessMemory (hProcess, Pointer($00B9029C), требуется 2 раза повторять или писать в пустую begin end; end; begin end; end. после этого ошибка проподала (в данном случае избавился он нее повторением кода в очередной begin) Последний раз редактировалось Admin, 10.08.2013 в 11:01. |
#2
|
||||
|
||||
![]() разберитесь с секцией try ... end в procedure TForm1.Timer1Timer(Sender: TObject); У вас там все перемешалось и функция вложенная и try
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
![]() [quote=Страдалецъ]разберитесь с секцией try ... end в procedure TForm1.Timer1Timer
Спасибо там исправил осталось проблема с checkbox1 при установке изначально галки все работает но после того как была убрана программа необходимо чтоб прекращала работу в данном коде ошлика не могу решить ее ( |
#4
|
||||
|
||||
![]() Есть подозрение, что в CheckBox1Click вы begin end для условия не поставили.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |