![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 01.02.2008
Сообщений: 44
|
![]()
Доброго времени суток, коллеги!
Такая ситуация: есть 2 Windows application-а. Допустим, что в форме первого приложения есть текстовое поле, и в нем записан текст. Можно ли вторым приложением получить доступ к этому тексту? Если можно, то как? |
![]() |
![]() |
![]() |
#2 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
Можно. Смотри поиск, не раз обсуждалось.
функции: FindWindow, FindWindowEx, SendMessage, SetWindowText, GetWindowText . |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 01.02.2008
Сообщений: 44
|
![]()
большое спасибо!! буду копать в этом направлении
![]() |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 01.02.2008
Сообщений: 44
|
![]()
Итак, вот текст:
procedure ReceiveMessage (var Msg: TMessage); message WM_COPYDATA; ... procedure TForm1.ReceiveMessage; var pcd: PCopyDataStruct; cd: TCopyDataStruct; begin pcd := PCopyDataStruct(Msg.LParam); Caption := PChar(pcd.lpData); if h = 0 then h := FindWindow(nil, 'Form1'); cd.cbData := Length(PChar(IntToStr(STrToInt(Capt ion) + 1))) + 1; cd.lpData := PChar(IntToStr(StrToInt(Caption) + 1)); SendMessage(h, WM_COPYDATA, 0, LParam(@cd)); end; т.е. процедура принимает сообщение (число), прибавляет к нему 1 и отправляет обратно... все красиво, только есть несколько моментов: 1. что такое message WM_COPYDATA;? 2. может это как-нибудь покрасивее моно сделать?? собственно задача-то ставилась ВЗЯТЬ данные из текстового поля левой программы (тоже написанной мной). А если работать по этому коду, то мне придется этой программе отправлять какую-то команду, в ответ на которую эта самая программа должна отсылать мне данные текстового поля ![]() ![]() |
![]() |
![]() |
![]() |
#5 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#6 | |||
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]()
1.
Цитата:
Цитата:
2. Цитата:
Он работает по командам, увы. Так что команды нужно подавать, никуда не денешься. Другое дело - по какому событию эти команды подавать... Последний раз редактировалось mihali4; 19.04.2008 в 16:08. |
|||
![]() |
![]() |
![]() |
#7 | |
Пользователь
Регистрация: 01.02.2008
Сообщений: 44
|
![]()
Эти функции работают с заголовком формы (тот, который Caption), а мне нужны данные из текстового поля (TEdit)
Цитата:
вот мне и интересно, есть ли такие команды, т.к. сегодня весь день просидел в инете и толком ничего не нашел... все, что есть - работает с заголовком окна ![]() Сами понимаете, не очень приятно, когда пользователь работает с программой, а в ней заголовок постоянно мигает ![]() |
|
![]() |
![]() |
![]() |
#8 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]() |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 01.02.2008
Сообщений: 44
|
![]() |
![]() |
![]() |
![]() |
#10 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как «внедриться» в другую программу? | forzub | Общие вопросы Delphi | 0 | 10.07.2008 17:33 |
Как записать свою программу в другую? | AngelOfDeath | Общие вопросы Delphi | 1 | 12.05.2008 06:12 |
как можно иначе записать программу | Malinka | Помощь студентам | 2 | 15.01.2008 11:08 |
Как записать в com -порт или модем двоичные данные | sergrom | Win Api | 10 | 25.06.2007 15:15 |
Отправлять данные из одной таблицы в другую | Таня84 | БД в Delphi | 14 | 28.04.2007 23:23 |