Главная страница
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.023 c
3-1082192120
diwin
2004-04-17 12:55
2004.05.16
запрос в Query Analyzer с выборкой из разных серверов


1-1083322967
Amid
2004-04-30 15:02
2004.05.16
Ошибка при читении функции из DLL


9-1072950191
mixir
2004-01-01 12:43
2004.05.16
Рисование в изометрии


14-1082619292
Silver Alex
2004-04-22 11:34
2004.05.16
Сертификация


8-1077871538
DuhcmanSoft
2004-02-27 11:45
2004.05.16
Как отследить подключение микрофона к звуковой карте