как получить содержимое текстовых полей чужой программы

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Vyazikov
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 14.01.2009 (Ср) 12:27

как получить содержимое текстовых полей чужой программы

Сообщение Vyazikov » 14.01.2009 (Ср) 12:58

Добрый день, к сожалению на других форумах получить ответа мне не удается, попытаюсь тут)

Имеется окно програмы, в этом окне программы -дочерное окно. Известны заголовки этих окон (И программы и дочерного окна)
на форме дочерного окна имеются текстовые поля, (которые находятся среди разных закладок)

Вопрос. Как средствами VB узнать содержимое этих текстовых полей? Как узнать их HWND (как я понимаю он понадобится в первую очередь)?
И по заголовку какого окна (Главного или дочерного?) необходимо искать нужную мне форму?

Желательно увидеть какойто наглядный пример, Главная задача-получить содержимое текстовых полей чужой программы.
(это текстовые поля и к сожалению не их имени ничего подобного мне не известно. Программа сторонняя)

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: как получить содержимое текстовых полей чужой программы

Сообщение dr.MIG » 14.01.2009 (Ср) 13:08

Функция FindWindow возвращает hwnd окна либо по его классу, либо по тексту, либо по тому и по другому.
Функция EnumChildWindows перечисляет все дочерние окна.
Функция GetWindowText возвращает текст, расположеный в окне.
Этого достаточно для выполнения поставленной задачи.
Примеры на форуме были.
Salus populi suprema lex

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Re: как получить содержимое текстовых полей чужой программы

Сообщение pronto » 14.01.2009 (Ср) 15:08

Прежде всего нужно убедиться, что это действительно текстовые поля, а не лейблы со свойством Appearance=1 - 3D и BorderStyle=1 - Fixed Single. С лейблами дело обстоит сложнее...
O, sancta simplicitas!

Vyazikov
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 14.01.2009 (Ср) 12:27

Re: как получить содержимое текстовых полей чужой программы

Сообщение Vyazikov » 14.01.2009 (Ср) 17:02

да вы правы но думаю что это всетаки текстовые поля.
только вот проблема, чтобы узнать класс содержимое или свойства этих полей я собирался использовать Spy++ (либо аналоги) перепробовал много программ. При наводе курсора на программу (отдельные поля или обьекты) не подсвечиваются!!! в остальных программах все хорошо, все как требуется, а исключительно в нужной программе она подсвечивается полностью вся, а не элементы на форме. (А их там достаточно много даже очень)
Не пойму почиму так?? и какже мне всетаки узнать Класс или свойство нужных мне полей?

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Re: как получить содержимое текстовых полей чужой программы

Сообщение pronto » 14.01.2009 (Ср) 17:20

Если Spy++ из пакета Visual C++ (6.0) что-то не подсвечивает, то этот элемент не имееи Хендла (как лейбел) или просто отрисован, как картинка.
O, sancta simplicitas!

Vyazikov
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 14.01.2009 (Ср) 12:27

Re: как получить содержимое текстовых полей чужой программы

Сообщение Vyazikov » 15.01.2009 (Чт) 9:17

Да Spy++ из пакета Visual C++ (6.0)
Прилагаю. скрин, обратите внимание что вся форма программы подсвечена (Курсорчика Спай++ не видно) При этом ниодин элемент на форме этой программы не подсвечивается отдельно, а только вся форма, както мне не кажется что все это отрисовано как картинка, . Вот и задаюсь вопросом какже так?

Скринhttp://www.ii4.ru/images/7983381.JPG

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: как получить содержимое текстовых полей чужой программы

Сообщение alibek » 15.01.2009 (Чт) 10:16

Удаленный терминал, скорее всего. В режиме хоста окна.
Lasciate ogni speranza, voi ch'entrate.

Vyazikov
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 14.01.2009 (Ср) 12:27

Re: как получить содержимое текстовых полей чужой программы

Сообщение Vyazikov » 15.01.2009 (Чт) 11:16

Так вот в чем причина )) вы правы, скорей всего програмка терминалится. Для входа в нее вводится логин и пароль, и она термналится на сервер.
Обидно однако, тоесть как я понял, выташить из нее данные из нужных полей не получится?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: как получить содержимое текстовых полей чужой программы

Сообщение alibek » 15.01.2009 (Чт) 12:06

Разве что с помощью распознавания символов.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 16

    TopList