Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Неверный результат работы функции


Страницы:   1 2

Андрей Жук ©   (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() ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо