Форум: "Начинающим";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];
Внизпередача данных в чужое адрессное пространство Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.04 c