Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.10;
Скачать: 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 вся ветка

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

Наверх




Память: 0.51 MB
Время: 0.047 c
3-1151611579
DmitrichJ
2006-06-30 00:06
2006.09.10
(InterBase)Многопользовательский доступ к БД разных пользователей


1-1153814890
312Kbps
2006-07-25 12:08
2006.09.10
Crystal Reports 9 + Delphi 7 !!!!


15-1155769544
vidiv
2006-08-17 03:05
2006.09.10
Если я выбрасываю (уничтожаю) 10 копеек, ...


2-1155856952
SerJaNT
2006-08-18 03:22
2006.09.10
Handle активного окна


15-1156107099
Владимир_мпп
2006-08-21 00:51
2006.09.10
Часовой пояс?