![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запустить процедуру в чужом процессе
Chorniy © (2008-03-03 11:40:00)Все еще пытаюсь "кликнуть" мышкой по окну игры, которое не обрабатывает сообщения виндовс.
Имеем:
Запущенную игру (известен ID процесса), название и сдвиг процедуры клика мышки внутри чужого процесса (скажем ClickXY).
Вопрос:
Есть ли способ запустить эту процедуру внутри чужого процесса? Или каким-нибудь образом переставить точку выполнения с одной команды на другую? Вот дебаггеры же умеют вроде так делать... В сторону каких процедур копать и что почитать по этой теме?
Palladin (2008-03-03 13:33:00) [21]http://www.google.ru/search?hl=ru&q=setwindowlong+gwl_wndproc&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=&aq=f
Chorniy (2008-03-03 13:33:00) [22]там наверняка регистры процессора сохранять надо (GetThreadContext), чтобы вернуть точку обратно... а еще что?
Chorniy (2008-03-03 13:30:00) [23]
> Здесь подробнее - откуда тебе стало об этом известно ..
ну из PE файла... хотя честно скажу, что еще не реализовал это. Потому что даже не был уверен в возможности перестановки точки выполнения программы.
> Оч даже простым способом - SetWindowLong(..GWL_WNDPROC..
> ).
Вот почитать бы где-нить статейку про реализацию SetWindowLong(..GWL_WNDPROC ...) или на словах поясните какого именно рядаусловий, попытаюсь поковыряться.
Сергей М. (2008-03-03 12:52:00) [24]
> Или каким-нибудь образом переставить точку выполнения с
> одной команды на другую?
Оч даже простым способом - SetWindowLong(..GWL_WNDPROC..).
Но для успешного выполнения этой ф-ции требуется отнюдь непростое соблюдение ряда условий.
Сергей М. (2008-03-03 12:44:00) [25]
> игра может работать с мышкой и без этих сообщений
Да мало ли как игра может работать !)
Но это же вовсе не ознаает, что окно никак не обрабатывает некие поступающие в его адрес сообщения)
> название и сдвиг процедуры клика мышки внутри чужого процесса
> (скажем ClickXY).
Здесь подробнее - откуда тебе стало об этом известно ..
Chorniy (2008-03-03 11:58:00) [26]Я уже создавал тут тему по этому вопросу. Уточню: не обрабатывает события виндовс WM_LBUTTONDOW, WM_LBUTTONUP... мне оветили, что игра может работать с мышкой и без этих сообщений, как-то через заднее отверстие ;)
Сергей М. (2008-03-03 11:43:00) [27]
> окну .., которое не обрабатывает сообщения виндовс
Это нонсенс