Форум: "WinAPI";
Текущий архив: 2003.04.21;
Скачать: [xml.tar.bz2];
ВнизФункция из чужого процесса Найти похожие ветки
← →
_toltec (2003-02-17 14:48) [0]Как вызвать функцию из чужого процесса?
← →
Digitman (2003-02-17 14:58) [1]создай в целевом процессе свой код.поток и в нем вызывай ф-цию
← →
_toltec (2003-02-17 15:11) [2]Sorry, наверное нетак задал вопрос. Мне нужно из чужого exe-ника
← →
Anatoly Podgoretsky (2003-02-17 15:20) [3]Запустишь этот чужой exe-ник он и станет чужим процессом
← →
_toltec (2003-02-17 15:35) [4]В чужой программе есть функция Func1(); stdcall; .
Мне надо из своей программы вызвать эту функция. Как мне это сделать???
← →
Digitman (2003-02-17 16:11) [5]
> В чужой программе есть функция Func1(); stdcall; .
Ее может вызвать кодовый поток
> Мне надо из своей программы вызвать эту функция
Создай в своей программе процедуру, создающую в чужом процессе доп.код.поток (см.например, CreateRemoteThread), вызови эту процедуру, и она сделает "свое черное дело" - запустит в чужом процессе код.поток, который будет вызывать Func1
← →
_toltec (2003-02-17 17:26) [6]1. Что такое кодовый поток
2. Можно каккой-нибудь пример использования функции СreateRemoteThread
← →
Digitman (2003-02-17 17:46) [7]кодовый поток в дан.случае - упорядоченная последовательность маш.инструкций, реализующих выч.алгоритм, исполняемых CPU по управлением мультизадачной ОС
а почитать для начала самостоятельно про Read/WriteProcessMemory() и CreateRemoteThread - не приходило в голову ?
← →
_toltec (2003-02-17 18:03) [8]Прочел. Впринцепе все понятно кроме параметра LPTHREAD_START_ROUTINE lpStartAddress, // pointer to thread function.
Как его получить?
← →
Внук (2003-02-18 10:03) [9]:)))
Его не получить, а передать надо
← →
Digitman (2003-02-18 10:12) [10]объяви и реализуй у себя в программе ф-цию с прототипом TThreadStartRoutine = function(lpThreadParameter: Pointer): Integer stdcall;
в теле ф-ции вызывай Func1()
адрес точки входа в нее и передавай параметром в lpStartAddress
← →
_toltec (2003-02-18 12:33) [11]Спасибо. Вроде все понятно. Единственное такой вопрос как вызвать Func1 если она является методом какогото класс?
← →
Digitman (2003-02-18 13:56) [12]точно так же, как и в своем процессе - зная ссылку на класс вызываешь его метод)
← →
_toltec (2003-02-18 14:09) [13]А как получить эту ссылку в ф-ции с прототипом TThreadStartRoutine = function(lpThreadParameter: Pointer): Integer stdcall;?
← →
Digitman (2003-02-18 14:25) [14]ты вообще о каком "чужом" приложении речь-то ведешь ? О Делфи-приложении ?) Что за блажь такая - копаться в "чужом" коде без исходников ? Объясни)))
← →
gsu (2003-02-18 14:44) [15]читы ищет (-:|~
← →
_toltec (2003-02-18 16:37) [16]Два Делфи-приложения с исходниками. И вобще это не я придумал а препод сказал чтоб сделал, вот я и долбаюсь.
← →
gsu (2003-02-18 16:42) [17]сунь функции в dll
← →
Digitman (2003-02-18 16:59) [18]
> препод сказал чтоб сделал
препода нужно слушать внимательно)
наверняка, он (препод) не ограничил тебя никак в изобретательности и не имеет ничего против, если приложение с Func1() кроме всего прочего будет принимать и обрабатывать некое оконное сообщение (посылаемое другим приложением), обработчик которого легко и просто вызовет в текущем адр.пространстве все что угодно)
← →
_toltec (2003-02-18 18:55) [19]В том то и дело что без сообщений.
← →
Suntechnic (2003-02-18 19:39) [20]_toltec (18.02.03 18:55)
Под такую постановку задачи как ты написал всё что угодно подогнать можно. Чем, например, твоего препода не устроит COM outproc сервер с клиентом, который пишется за 3 мин. на Делфи?
← →
_toltec (2003-02-18 23:55) [21]Com его неустороит.
← →
Digitman (2003-02-19 11:14) [22]если целевое приложение построено в той же версии, что и вызывающее, и использует объект класса TApplication, то получить доступ к объекту Application через глобальный атом
← →
_toltec (2003-02-19 14:18) [23]Можно мне тупому примерчик, пожалуйста.
← →
Digitman (2003-02-19 14:23) [24]Нельзя)... примерчик перед тобой - модуль controls
← →
_toltec (2003-02-19 14:55) [25]Это типа функция FindControl ???
← →
Digitman (2003-02-19 15:24) [26]да, копай отсюда
← →
_toltec (2003-02-19 17:16) [27]Спасибо.
← →
Meshalo (2003-02-21 10:09) [28]Удалено модератором
Примечание: Заблудился?
← →
Digitman (2003-02-21 10:13) [29]
> Meshalo
> Но подразумевалось всего лишь вызов процедуры через DLL
"Через") Что значит "через" ?! ... Чушь несусветная !
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.04.21;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.016 c