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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2010, 15:14   #1
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость Работа с чужими окнами

САБЖ:
Написать приложение, целью которого будет копирование инфы с другого приложения(окна).
Пример:
Есть форма, на ней лежит 1 эдит, в котором написано "hello", 2-е приложение должно узнать что именно написано в эдите...


Мои разсуждения:
1.Юзаем FindWindow, находим окно приложения, где расположен нужный нам эдит...
2.Заносим в переменую содержимое эдита // Вот тут и проблема
Lemo вне форума Ответить с цитированием
Старый 05.06.2010, 15:15   #2
DoDge_VipeR
Форумчанин
 
Аватар для DoDge_VipeR
 
Регистрация: 30.04.2010
Сообщений: 317
По умолчанию

между 1 и 2
1а) находим edit на форме
icq:627719[сто сорок четыре] - помогу с Pascal & Delphi!
DoDge_VipeR вне форума Ответить с цитированием
Старый 05.06.2010, 15:19   #3
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

И если мы не знаем имя эдита...
Lemo вне форума Ответить с цитированием
Старый 05.06.2010, 15:20   #4
DoDge_VipeR
Форумчанин
 
Аватар для DoDge_VipeR
 
Регистрация: 30.04.2010
Сообщений: 317
По умолчанию

по классу!
ну а если их несколько то хз!
icq:627719[сто сорок четыре] - помогу с Pascal & Delphi!
DoDge_VipeR вне форума Ответить с цитированием
Старый 05.06.2010, 17:13   #5
Kazik
Форумчанин
 
Регистрация: 27.05.2009
Сообщений: 192
По умолчанию

вы так стандартными средствами не сделаете...нужны дополнительные библиотеки...не помню какие...слышал я о таком
Kazik вне форума Ответить с цитированием
Старый 05.06.2010, 20:31   #6
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
Сообщение от Kazik Посмотреть сообщение
вы так стандартными средствами не сделаете...нужны дополнительные библиотеки...не помню какие...слышал я о таком
Можно и даже нужно.
Код:
var
  h: HWND;
  he: THandle;
  s: string;
begin
  h := FindWindow(nil, 'test');
  if h = 0 then exit;
  he := FindWindowEx(h, 0, 'TEdit', 'Hello');
  if he = 0 then exit;
  SetLength(s, 6);
  SendMessage(he, WM_GETTEXT, 6, integer(s));
  showmessage(s)
end;
he := FindWindowEx(h, 0, 'TEdit', 'Hello'); //тут указываем либо класс, либо имя, либо и то и другое сразу. А уж если edit'ов много, то ничего не поделаешь - придётся либо в ручную выбирать, либо искать по другим параметрам, например, по координатам
eoln вне форума Ответить с цитированием
Старый 05.06.2010, 20:37   #7
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

Данный пример описан если мы знаем что в том эдите "hello"?
Код:
  he := FindWindowEx(h, 0, 'TEdit', 'Hello');
Lemo вне форума Ответить с цитированием
Старый 05.06.2010, 20:48   #8
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Да, а если не знаем что там, то пишем nil

[ДОБАВЛЕНО]
Для многих контролов в цикле пока не ноль ищем he := FindWindowEx(h, 0, 'TEdit', nil); и для каждого найденного проверяем, например, размеры поля вывода SendMessage(he, em_GetRect, 0, integer(@r)); где r: TRect. Чтобы получить r достаточно один раз запустить с заранее известным значением текста, запомнить и записать в код программы. Ну и буфер s придётся увеличить.
Для браузера думаю так же (не уверен), ищем сначала форму, потом дочернее окно и т.п, и только потом edit

Последний раз редактировалось eoln; 05.06.2010 в 21:29.
eoln вне форума Ответить с цитированием
Старый 05.06.2010, 21:07   #9
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

А если перехватывать окно браузера и вместо эдита :
Код:
<input class="inputText"
что в этом случае?...
Lemo вне форума Ответить с цитированием
Старый 05.06.2010, 21:24   #10
fbus
Форумчанин
 
Аватар для fbus
 
Регистрация: 23.10.2008
Сообщений: 460
По умолчанию

что значит "ЕСЛИ ИМЯ НЕИЗВЕСТНО"? есть полно софта, которым можно все окна посмотреть
fbus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с чужими окнами ZBEP Win Api 19 13.05.2014 08:17
Работа с чужими окнами Djem1991 Общие вопросы Delphi 3 15.11.2009 22:35
работа с чужими окнами betirsolt Общие вопросы Delphi 8 06.10.2009 12:52
работа с чужими программами Rend1 Win Api 31 02.03.2008 16:42
работа с "чужими" окнами zetrix Безопасность, Шифрование 1 29.10.2006 11:28