Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.21;
Скачать: CL | DM;

Вниз

Функция из чужого процесса   Найти похожие ветки 

 
_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 вся ветка

Текущий архив: 2003.04.21;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.019 c
14-67469
Sheng
2003-04-02 21:51
2003.04.21
Сеть XP и 98


14-67471
Cranium
2003-04-01 17:26
2003.04.21
Помогите с алгоритмом...


14-67555
Ольга
2003-04-02 19:38
2003.04.21
Вопрос по Делфи! Очень нужно!


3-67103
Иван
2003-04-02 14:42
2003.04.21
Можно ли применить запрос к DataSet ?


1-67252
id_privin
2003-04-07 18:48
2003.04.21
непонятный глюк командной строги в XP