Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Достать текс из класса типа Afx:400000:4048:10013:0:0 [D6, WinXP]


Страницы:   1 2

klimov ©   (2006-12-16 23:01:00) 

Есть некая программа, содержащая окно, где пользователь набирает текст, так вот стоит задача забрать с этого окна текст.
С помощью InqSoft Window Scanner удалось узнать структуру программы:
... (сама форма и куча панелей)
а. Класс окна - MDIClient
b. Доченее окно: Класс окна - Afx:400000:b:10011:6:140265
с. на дочеренм окне находится следующее окно: Класс окна - Afx:400000:4048:10013:0:0
Вот именно в данном окне производится набор текста.
Данное окно собой представляет огранниченное поле 24 линии по 80 символов на строку.
Так вот как можно получить текст с этого поля???

GetWindowText и WM_GETTEXT ничего не вытаскивают... :(
Также не могу определить положение курсора на данном поле... :(


klimov   (2006-12-22 11:13:00) [1]

помести туда картинку из фотошопа и попробуй програмно убрать из буфера, а потом вставить ее в буфер - посмотришь какие тормоза будут!
А такие операции  придется проделывать чуть ли не ежесекундно!


novill   (2006-12-19 09:47:00) [2]

> [21] klimov ©   (18.12.06 18:10)

а что мешеает сохранять пользовательский буфер, делать свои операции, потом все возращать на место?


klimov   (2006-12-18 18:10:00) [3]

я это понимаю, но учитывая что пользователи иногда пользуются буфером - думаю он кому-то помешает... :(
Или мне или им! :(


novill   (2006-12-18 16:50:00) [4]

имхо, остается оптимизировать анализ того, что получаешь через буфер. Даже если заставишь, тебе GetWindowText вернет то же самое.


klimov   (2006-12-18 15:54:00) [5]

т.е. создаю глобальный хук на клаву, далее смотрю активное окно, если он, то надо бы сохранить данный запрос... :)


klimov   (2006-12-18 15:52:00) [6]

по клавише Enter


novill   (2006-12-18 15:47:00) [7]

> [13] klimov ©   (18.12.06 15:22)

А по какому событию ты хочешь записывать запросы?


klimov   (2006-12-18 15:29:00) [8]

нет... БД находится по ту сторону инета... :(


clickmaker   (2006-12-18 15:26:00) [9]


> [14] klimov ©   (18.12.06 15:24)

а средствами самой БД этого никак не сделать?
Есть же профайлеры всякие и т.д. и т.п. SQL мониторы...


klimov   (2006-12-18 15:24:00) [10]

То clickmaker >
Есть некая прога в ней колбасятся некоторые запросы, так вот стоит задача, чтоб эти запросы писались в БД!
Перехватывать пакеты - бесполезно - по SSL все шифруется... :(


klimov   (2006-12-18 15:22:00) [11]

насчет буфера - уже сделано, но проблема в том что там очень много мусора.
На экране может быть много запросов, а из них надо выделить последний!
Если бы возможно было бы определить положение курсора - другое дело!
Сохранять образ предыдущего окна и смотреть что появилось на нем - это долго - заметно притормаживание.


clickmaker   (2006-12-18 15:15:00) [12]

<almost offtopic>
а кто-нить может мне растолковать, что за задачи такие у людей встречаются, когда кровь из носу нужно выдрать текст из чужого приложения?
не первый вопрос ведь...
мне правда интересно, не сочтите за стёб
</almost offtopic>


novill   (2006-12-18 14:59:00) [13]

> [9] klimov ©   (18.12.06 14:21)

тебе просто текст надо содрать?
Можно попробовать клавиатурными сообщениями выделить и скопировать текcт в clipboard...


BiN   (2006-12-18 14:46:00) [14]


> klimov ©   (18.12.06 14:21) [9]

Это право разработчиков приложения - игнорировать стандартные сообщения о запросе текста.


klimov   (2006-12-18 14:21:00) [15]

уже посмотрел... Мыша ползает именно над окном с этим handl'ом...
Другого класса не находит... :(
Посмотрел уже c помощью:
1. WinDowse
2. WindowScanner
3. WinSpector Spy
4. WinCheat
ну ниодна из них не показывает что на данном классе есть что-то еще... :(


novill   (2006-12-18 12:24:00) [16]

может на форме есть "промежуточное" окно.

Посмотри какое окно находится под указателем мыши.


clickmaker   (2006-12-18 12:03:00) [17]

ну попробуй EM_GET...
и точно на этом окне не лежит еще одного класса Edit, например?


klimov   (2006-12-18 11:56:00) [18]

Дык, это уже понятно! А текст то как с этого окна достать?


clickmaker   (2006-12-18 10:21:00) [19]


> [4] klimov ©   (18.12.06 09:09)

Ну значит не обрабатывает это окно сообщение WM_GETTEXT


klimov   (2006-12-18 09:09:00) [20]

Да, проверял - возвращает действительно Handle, а не ошибку.
В InqSoft Window Scanner аналогичный дескриптор. Посылал сообщение закрытия данного окна - работает... А вот текст никак не достать!


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо