|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.02.2012, 12:30 | #1 |
Новичок
Джуниор
Регистрация: 18.02.2012
Сообщений: 3
|
Delphi XE2 работа с памятью процесса
В общем, нужно получить базовый адрес модуля
делаю так: PHP код:
WorkPID - присваивается после того как найдется PID. Для того чтобы потом не было проблем если запущено не одно окно данного приложения. Вот сама процедура поиска: PHP код:
Раньше, в XE работала отлично. Может ли это быть связанно с тем, что WorkPID уже намертво заданно значение. А раньше он искался перед поиском заного. Т.е. не намертво задан. При запуске программы идет поиск всех окон, из списка выбирается нужный, а после выбора уже присвоение. Получается ID верный, но раньше я его из буфера передавал. Хотя попробовав передать из буфера как раньше, результат не поменялся. Также для получения значени из адреса использовал: PHP код:
Я смотрю XE и XE2 сильно отличаются, создав проект в одном, в другой версии уже не открыть.. Последний раз редактировалось YCA4; 18.02.2012 в 12:33. |
18.02.2012, 13:33 | #2 |
Новичок
Джуниор
Регистрация: 18.02.2012
Сообщений: 3
|
Ошибку нашел там, где вообще не ожидал её найти.
Я в процессе выбора нужного окна получаю и записываю его хэндл, для дальнейшего использования. Дак я хэндл в WorkPID записывал. Вот и не работало! |
18.02.2012, 19:26 | #3 |
Новичок
Джуниор
Регистрация: 18.02.2012
Сообщений: 3
|
Объясните пожалуйста, те кто имел дело с XE2. Как там прочитать адрес из памяти?
Как не пробую, всегда получаю результат 0. Хотя уже последние два параметра сделал SIZE_T. Код:
Код:
Дело не в ReadProcessMemory а в OpenProcess. Он в H пишет 0, так что дело даже до прочтения памяти и не доходит. Где ошибка, вроде функция описана правильно. MSDN: Код:
Код:
GetLastError пишет "Параметр задан неверно", но какой? Пойду пороюсь дальше. ВСЕ! Проблему нашел. У меня в паблике еще был описан WorkPID, но не DWORD а кардинал. Обоим (в варе и паблике) поставил DWORD и заработало. Всем спасибо тема себя исчерпало все получилось, значение поймал. Последний раз редактировалось YCA4; 18.02.2012 в 23:21. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с фреймами в Delphi XE2 | kholoshchak | Общие вопросы Delphi | 2 | 16.02.2012 13:36 |
Embarcadero Delphi XE2 Partner DVD (Зборник компонентов для XE2) | volod3000 | Софт | 2 | 01.11.2011 02:26 |
Проект (работа с БД) на Delphi XE2 на Windows 7 64. Будет ли эта программа корректно работать на Windows 7 32 ? | Dux | Общие вопросы Delphi | 10 | 04.10.2011 19:33 |
Работа с памятью процесса | JRcoker | Win Api | 10 | 18.07.2009 22:22 |
Работа с памятью запущенного процесса | DeniCPP | Общие вопросы C/C++ | 2 | 09.04.2009 12:38 |