Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1155630477
QuickFinder
2006-08-15 12:27
2006.09.10
iPod


2-1155665628
Edu.1982
2006-08-15 22:13
2006.09.10
Карты


2-1155806582
zdm
2006-08-17 13:23
2006.09.10
MySQL


15-1155957112
СергунчиК
2006-08-19 07:11
2006.09.10
Какой телефон купить


2-1156233763
redlord
2006-08-22 12:02
2006.09.10
а есть ли функция обратная getwindowthreadprocessid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский