Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2011, 20:03   #1
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
Вопрос Пост строки в чужое окно.

К примеру есть чужое окно, найдено этой функцией FindWindow, есть координаты для поле ввода строк, как туда ввести строку программно?
VintProg вне форума Ответить с цитированием
Старый 12.11.2011, 22:56   #2
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

чтобы добиться такого, нужно сделать 2 вещи:
1) в принимающем приложении описать пользовательское сообщение и обработчик этого сообщения в виде callback-функции, а в отпраляющем сообщении посылать само сообщение методами SendMessage или PostMessage.
2) Т.к. можно посылать только два четырехбайтовых параметра, то это могут быть указатели на вашу строку или набор строк. По этой причине строки нужно размещать не в адресном пространстве отправляющего приложения, а в общей heap-памяти (файл-маппинг или глобальные атомы). Легче сделать с помощью атомов, это один из механизмов Windows для хранения строковых значений: функции GlobalAddAtom(), GlobalDeleteAtom(), GlobalFindAtom(), GlobalGetAtomName(). Атом - это двухбайтовый адрес на хранимую строку в глобальной секции данных ОС. Сначала записываем набор строк в атом, затем передаем нашим сообщением двухбайтовый указаель на этот атом в WParam или LParam. Далее, принимающим приложением считываем указатель и функцией GlobalGetAtomName() узнаем нужную строку. только по завершении работы с полученными данными не забывам очистить атом с помощью GlobalDeleteAtom().
Файловый маппинг - тема разговора вокруг функций CreateFile, CreateFileMapping, MapViewOfFile. Подробности в MSDN или соответствующей русскоязычной литературе смотрите.
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сделать прозрачным чужое окно 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