var
hProcess,PID,buf,ibuf,BC:size_t;
i,c:Integer;
ex: Integer;
j:array [0..63] of Integer;
begin
hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,FID[Form2.sComboBox1.ItemIndex]);
for i:=0 to 63 do
begin
ReadProcessMemory(hProcess,ptr($00A571E0),@ibuf,si zeof(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$1C),@ibuf,siz eof(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$34),@ibuf,siz eof(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$D18),@ibuf,si zeof(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$C),@ibuf,size of(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$4*i),@ibuf,si zeof(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$8),@buf,sizeo f(buf),BC);
begin
c:=i+1;
end;
j[i]:=buf;
sEdit2.Text:=inttostr(j[тут номер ячейки в которой нужно показать id]);
end;
CloseHandle(hProcess);
end;
Тут я узнаю просто id лежащего предмета в инвентаре , а как можно считать его имя ? (Delphi XE2)
var
hProcess,PID,ibuf,BC:size_t;
buf:char;
i,c:Integer;
j:array [0..63] of char;
begin
hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,FID[Form2.sComboBox1.ItemIndex]);
for i:=0 to 63 do
begin
ReadProcessMemory(hProcess,ptr($00A571E0),@ibuf,si zeof(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$1C),@ibuf,siz eof(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$34),@ibuf,siz eof(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$D18),@ibuf,si zeof(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$C),@ibuf,size of(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$4*i),@ibuf,si zeof(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$40),@buf,size of(buf),BC);
begin
c:=i+1;
end;
j[i]:=buf;
Так переделал функцию но результат отрицательный вылазиют значки и тд., посмотрите может быть не так что - то . Ищет то что находится в 0 ячейке (ну 1 то есть)
Код:
var
hProcess,PID,ibuf,BC:size_t;
name:wchar;
begin
hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,FID[Form2.sComboBox1.ItemIndex]);
begin
ReadProcessMemory(hProcess,ptr($00A571E0),@ibuf,sizeof(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$1C),@ibuf,sizeof(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$34),@ibuf,sizeof(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$D18),@ibuf,sizeof(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$C),@ibuf,sizeof(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$4*0),@ibuf,sizeof(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$40),@ibuf,sizeof(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf),@name,sizeof(name),BC);
sEdit2.Text:=name;
end;
CloseHandle(hProcess);
end;
Последний раз редактировалось STIL23; 20.07.2012 в 12:19.
Вот файл, которым я пользуюсь.
Обновлял его пару недель назад.
Ого ты его сам составлял или он с element.data вытаскивается ? И теперь додумать не могу как сделать . Если id = 6 например , то это "Крепкий клинок" . Как так для всех значений сделать то сразу?
Последний раз редактировалось STIL23; 20.07.2012 в 12:52.