![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Неверный результат работы функции
Андрей Жук © (2005-06-10 15:01:00)В продолжение...
BASE_ADDRESS[16]
MEMORY_BASIC_INFORMATION ProcessMemory;
HANDLE Process = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,false,PID);
VirtualQueryEx(Process,NULL,&ProcessMemory,sizeof(ProcessMemory));
wsprintf(BASE_ADDRESS,"%u",(DWORD)ProcessMemory.BaseAddress);
MessageBoxEx(hWindow,BASE_ADDRESS,"",MB_OK,419);
получаем всегда 0
Андрей Жук (2005-06-10 15:29:00) [21]Ну нету у меня Рихтера. Есть только по .Net
Андрей Жук (2005-06-10 15:28:00) [22]скажите мне смысл этого параметра, если он всегда равен нулю?
Суслик (2005-06-10 15:28:00) [23]
> Рихтера читать
я ему уже советовал
Игорь Шевченко (2005-06-10 15:27:00) [24]Рихтера читать
Андрей Жук (2005-06-10 15:26:00) [25]
> адрес самого первого региона в АП процесса как раз и
> равен 0.
так смысл тогда этого параметра?
Андрей Жук (2005-06-10 15:25:00) [26]ну если более полно то так
BASE_ADDRESS[16];
HMODULE hMods[1024];
MEMORY_BASIC_INFORMATION ProcessMemory;
HANDLE Process = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,false,PID);
if (Process!= INVALID_HANDLE_VALUE)
{
VirtualQueryEx(Process,NULL,&ProcessMemory,sizeof(ProcessMemory));
if(EnumProcessModules(Process, hMods, sizeof(hMods), &cbNeeded))
for (int i = 0; i < (cbNeeded / sizeof(HMODULE)); i++ )
GetModuleFileNameEx(Process,hMods[i], szModName, sizeof(szModName)); wsprintf(BASE_ADDRESS,"%u",(DWORD)ProcessMemory.BaseAddress);
MessageBoxEx(hWindow,BASE_ADDRESS,"",MB_OK,419);
}
так что обе функции работают верно (вывод модулей работает)
Digitman (2005-06-10 15:24:00) [27]или ты о том что ProcessMemory.BaseAddress = 0 ?
так это вполне нормально !
адрес самого первого региона в АП процесса как раз и равен 0.
Digitman (2005-06-10 15:20:00) [28]
> получаем всегда 0
здесь 2 вызова ф-ций.
какая из них возвращает 0 и что говорит GetLasterror() ?