Вниз
Скачать: CL | DM;

передача данных в чужое адрессное пространство   Найти похожие ветки 

← →
4izh   (2006-08-20 12:23) [0]

народ помогите советом .

моя прога поставила хук на другую прогу в результате чего DLL была подгружена в чужоа а.п. но при етом все переменные были обнулены . как передать в ту DLL данные из проги установившей хук ?  

использовать сокеты и все файловые операции запрещено условием задачи


← →
DrPass ©   (2006-08-20 12:34) [1]


> все файловые операции запрещено условием задачи

Файловые операции - понятие растяжимое. Вообще все, или только те, которые что-то оставляют на диске? Memory-mapped файлы разрешены? А named pipes? А еще можно использовать wm_copydata


← →
Ketmar ©   (2006-08-20 13:08) [2]

а еще sherd-секции. которые Delphi не поддерживает. %-)


← →
Сергей М. ©   (2006-08-20 15:52) [3]


> при етом все переменные были обнулены


Ты сам и обнулил их.


← →
Пусик ©   (2006-08-20 16:28) [4]


> 4izh   (20.08.06 12:23) 
>  но при етом все переменные были обнулены


Кем и как?


← →
4izh   (2006-08-20 17:02) [5]

после спроектирования длл в чужое а.п. все ее переменные равны нулю

переменные не передаются в DLL в чужом а.п.


← →
Пусик ©   (2006-08-20 17:26) [6]


> 4izh   (20.08.06 17:02) [5]
> после спроектирования длл в чужое а.п. все ее переменные
> равны нулю


Ну так инициализируй их нужными значениями.


← →
4izh   (2006-08-20 18:06) [7]

а откуда я их возьму(в чужом а.п.) если они были извесны тока в проге устанавливающей хук


← →
Virgo_Style ©   (2006-08-20 18:17) [8]

не пакость ли мы пишем


← →
4izh   (2006-08-20 18:20) [9]

to drpass
если я все правильно понял то wm_copydata легко использовать для связи
между прогами если приемная сторона етого ожидает. в противном случае
придется ставить перехватчик на ето сообщение  или я не прав  ??


← →
4izh   (2006-08-20 18:25) [10]

to virgo_style
нет не пакость просто в  чужой проге надо ныжимать несколько кнопачек


← →
DrPass ©   (2006-08-20 18:31) [11]


> wm_copydata легко использовать для связи
> между прогами если приемная сторона етого ожидает

Само собой. Программа должна уметь принимать это сообщение и корректно его обрабатывать. Ты ж не можешь схватить ее за коки, сжать и заставить насильно принять данные :)

>  в противном случае
> придется ставить перехватчик на ето сообщение

Какой еще перехватчик? Предполагается, что ты сам пишешь и код, который посылает wm_copydata, и оконную функцию, которая его принимает. Другого не дано.

> просто в  чужой проге надо ныжимать несколько кнопачек

И что, для этого нужно внедриться в ее адресное пространство?


← →
4izh   (2006-08-20 19:08) [12]

приемная прога написана не мной и соответственно не ждет wm_copydata

чтоб нажать кнопку надо сначала узнать что ее надо нажать. для етого установлен хук и внедренная длл начинает следить за определенными контролами на основании чего и принимается решение о нажатии

а если совсем конкркетно то длл в чужом а.п. надо передать хендл окна на которое эта длл подсажена. caption использовать не получится так как он динамически меняется


← →
Пусик ©   (2006-08-20 20:12) [13]


> 4izh   (20.08.06 18:06) [7]
> а откуда я их возьму(в чужом а.п.) если они были извесны
> тока в проге устанавливающей хук


Любым способом устанавливаешь взаимодействие между двумя процессами:
1. Организуешь очередь сообщений
2. Создаешь глобальную доступную область в DLL
3. Используешь MMF, NamedPipes, MailSlots...


← →
4izh   (2006-08-20 20:29) [14]

to пусик

пункт 3 отпадает по условию задачи
а вот про пункт 2 хотелось бы узнать поподробнее


← →
Пусик ©   (2006-08-20 20:42) [15]


> 4izh   (20.08.06 20:29) [14]
>пункт 3 отпадает по условию задачи


Что за условие?


← →
4izh   (2006-08-20 21:04) [16]

to пусик

прочти вопрос с которого начинается данная ветка обсуждения


← →
Пусик ©   (2006-08-20 21:19) [17]


> 4izh   (20.08.06 21:04) [16]
> to пусик прочти вопрос с которого начинается данная ветка
> обсуждения


Не вижу в условии запрета на использование разделенной области памяти ы\в DLL.


← →
DrPass ©   (2006-08-20 21:54) [18]


> приемная прога написана не мной и соответственно не ждет
> wm_copydata

Если ты в нее внедряешь свою DLL, то что тебе мешает в этой DLL создать невизуальное окно, принимающее в свою функцию wm_copydata?


← →
4izh   (2006-08-20 22:37) [19]

создать не видимое окно, ето не плохое предложение .

с удовольствием выслушаю и другие предложения


← →
guav ©   (2006-08-20 23:29) [20]

Уже было предложение использовать MMF.
Для данной задачи - достаточно удобный путь, удобнее чем WM_COPYDATA.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.041 c
15-1155533371
Ega23
2006-08-14 09:29
2006.09.10
С Днём рождения! 12 августа


15-1154246296
Ega23
2006-07-30 11:58
2006.09.10
С Днём рождения! 30 июля


3-1152007567
drashka
2006-07-04 14:06
2006.09.10
Ошибка при использованиии запроса Like с русским текстом


15-1155285191
Desdechado
2006-08-11 12:33
2006.09.10
Вопросы по Миранде


3-1151520795
Chort
2006-06-28 22:53
2006.09.10
Создание связи между DBGrid, ADOConnection, DataSource, ADOTable




   Наверх