![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ReadProcessMemory читает всегда с одного адреса... где-то ошибка?
Chorniy © (2008-04-10 09:11:00)Какое бы значение я не задавал переменной BlockAddr, массив Data у одного процесса всегда одинаковый... то есть чтение происходит удачно, но выглядит так, будто процедура игнорирует значение BlockAddr. Подскажите что не так.. вот код
var
Bytes, BlockSize, BlockAddr: dword;
Data: array of byte;
HProcess: THandle;
begin
HProcess := OpenProcess(PROCESS_VM_READ,False,prID);
if HProcess = 0 then
begin
ShowMessage('Нельзя прочитать');
Exit;
end;
BlockAddr := 0; // пишу любое число... результат неизменный
BlockSize := 1;
ReadProcessMemory(HProcess,@BlockAddr,@Block[0],BlockSize,Bytes);
if Bytes <> BlockSize then
ShowMessage('считано неверное кол-во байтов = ' + IntToStr(Bytes));
end;
Chorniy (2008-04-10 10:11:00) [1]
> ну так приведи тип DWord к типу Pointer ! В чем проблема-то
ааа))) вот где собака порылась... я неправильно представил себе механизм работы функции....ок ща проверю. Спасибки )
Сергей М. (2008-04-10 10:03:00) [2]
> грит что Pointer нужен
ну так приведи тип DWord к типу Pointer ! В чем проблема-то ?
Chorniy (2008-04-10 09:53:00) [3]
> @BlockAddr - адрес переменной
ReadProcessMemory(HProcess,BlockAddr,@Block[0],BlockSize,Bytes);
дак вот так не работает.. грит что Pointer нужен.
+ описание функции:
pBaseAddress - Points to the base addressin the specified process to be read.
указатель на адрес вроде как.
MBo (2008-04-10 09:28:00) [4]@BlockAddr - адрес переменной