Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: CL | DM;

Вниз

Подскажите, какие значения должны быть присвоены переменным в   Найти похожие ветки 

 
nuflin   (2004-03-26 10:04) [0]

Подскажите, какие значения должны быть присвоены переменным в функции ReadProcessMemory

ReadProcessMemory(
   HANDLE hProcess, // handle of the process whose memory is read  
   LPCVOID lpBaseAddress, // address to start reading
   LPVOID lpBuffer, // address of buffer to place read data
   DWORD nSize, // number of bytes to read
   LPDWORD lpNumberOfBytesRead  // address of number of bytes read
  );


 
Игорь Шевченко ©   (2004-03-26 10:18) [1]

Пример использования:

var
 AProcessHandle: THandle;
 AProcessID: Cardinal;
 ATargetProcessParametersPointer: Pointer;
 AReturned: Cardinal;
 DesiredAddress: Pointer;
..............
   AProcessHandle := OpenProcess(PROCESS_VM_READ, false, AProcessID);
   if AProcessHandle = 0 then
     RaiseLastWin32Error();
   try
     { Получение адреса структуры параметров процесса }
     if not ReadProcessMemory(AProcessHandle,
            DesiredAddress,
                            @ATargetProcessParametersPointer, SizeOf(Ptr32),
                            AReturned) then
       RaiseLastWin32Error();


 
nuflin   (2004-03-27 09:28) [2]

AProcessHandle всегда будет равен 0 даже если менять значение переменной AProcessID


 
Kerk ©   (2004-03-27 10:33) [3]

нет. код покажи


 
nuflin   (2004-03-27 10:58) [4]

например
AProcessHandle := OpenProcess(PROCESS_VM_READ, false, 1);


 
Digitman ©   (2004-03-27 12:54) [5]


> nuflin


что за "единица" фигурирует 3-м параметром вызова OpenProcess() ? от балды проставлена она ?

3-й параметр д.б. уникальным идентификатором существующего процесса, а не каким-то непопонятно откуда взятым числом


 
nuflin   (2004-03-27 13:57) [6]

> Digitman
третий праметр имеет тип cardinal(dword,longword) - 0..4294967295


 
Digitman ©   (2004-03-27 14:09) [7]

значение уник.идентификатора процесса как раз и есть значение кардинального типа (DWORD)

вопрос в том, идентификатор какого конкретно процесса ты пытаешься передать этим параметром .. в системе не существуют процессы с уник.идентификатором равным 1

если ты пытаешься открыть текущий процесс, то его ид-р м.б. получен вызовом GetCurrentProcessId


 
nuflin   (2004-03-27 14:46) [8]

А как получить идентификаторы всех процессов?


 
Digitman ©   (2004-03-27 14:55) [9]

используй модули tlhelp32.pas (win9x) и psapi.pas (NT/W2k/XP)



Страницы: 1 вся ветка

Текущий архив: 2004.05.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
9-1072024759
dRake
2003-12-21 19:39
2004.05.16
Рендер на текстуру под PowerDraw!


1-1083128507
din
2004-04-28 09:01
2004.05.16
Lookup в гриде


11-1069436539
DDA
2003-11-21 20:42
2004.05.16
KOL SetFileTime?


8-1077192989
fiction
2004-02-19 15:16
2004.05.16
работа с графическим буфером


1-1083318602
cf
2004-04-30 13:50
2004.05.16
буфер обмена