|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.11.2011, 22:56 | #2 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
чтобы добиться такого, нужно сделать 2 вещи:
1) в принимающем приложении описать пользовательское сообщение и обработчик этого сообщения в виде callback-функции, а в отпраляющем сообщении посылать само сообщение методами SendMessage или PostMessage. 2) Т.к. можно посылать только два четырехбайтовых параметра, то это могут быть указатели на вашу строку или набор строк. По этой причине строки нужно размещать не в адресном пространстве отправляющего приложения, а в общей heap-памяти (файл-маппинг или глобальные атомы). Легче сделать с помощью атомов, это один из механизмов Windows для хранения строковых значений: функции GlobalAddAtom(), GlobalDeleteAtom(), GlobalFindAtom(), GlobalGetAtomName(). Атом - это двухбайтовый адрес на хранимую строку в глобальной секции данных ОС. Сначала записываем набор строк в атом, затем передаем нашим сообщением двухбайтовый указаель на этот атом в WParam или LParam. Далее, принимающим приложением считываем указатель и функцией GlobalGetAtomName() узнаем нужную строку. только по завершении работы с полученными данными не забывам очистить атом с помощью GlobalDeleteAtom(). Файловый маппинг - тема разговора вокруг функций CreateFile, CreateFileMapping, MapViewOfFile. Подробности в MSDN или соответствующей русскоязычной литературе смотрите.
"ковыряю изнутри" (с)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сделать прозрачным чужое окно | Unconnected | Общие вопросы Delphi | 2 | 18.06.2011 22:14 |
[?] Послать клавишу в чужое окно, не выводя окно на передний план. | Moriarty | Win Api | 4 | 21.02.2011 05:11 |
Control в чужое окно | Qwe1 | Win Api | 5 | 25.12.2010 00:27 |
Скрыть чужое окно | ЧИЖ | Win Api | 8 | 12.06.2008 00:55 |