![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Приветствую всех.
Собстсвенно сабж. Что-то даже не представляю с какой стороны подступиться. Какие будут идеи? Добавлено через 1 минуту и 28 секунд Имеется ввиду, что в окне созданном на базе Direct'a есть поле для ввода текста, вот текст из этого поля и нужно получить. Обдумывал вариант с хуком клавы, но неэффективно получается, надеюсь на другие идеи. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| WERITAS |
|
|||
|
******** ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 2.5.2005 Где: Москва Репутация: нет Всего: 5 |
Привет
Разъясни пожалуйста что ты имеешь в виду: 1) Если окно, созданное самой программой и отрисованное в Директ 3Д, то это невозможно, т.к. глобального хендла, как у окон в винде, у этого окна нет. Текст в этом окне хранится в памяти этой проги. 2) Виндозное окно. Не понятно как с ним работать? -------------------- Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак" |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Я понимаю, что хендла нет -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| WERITAS |
|
|||
|
******** ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 2.5.2005 Где: Москва Репутация: нет Всего: 5 |
Так указатель на объект! -------------------- Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак" |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Ну вот значит об этом мне и хотелось бы узнать подробнее. Что за объект, как к нему получить доступ, какие методы/свойства в общем случае. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| WERITAS |
|
||||
|
******** ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 2.5.2005 Где: Москва Репутация: нет Всего: 5 |
Найти адрес строки и вытащить её из памяти. Хотя Виндовс скорей всего не даст рыться в памяти чужой программы (хотя есть читтерские программки, например, менять кол-во денег в игрушках
А если текст там изначально введён?
У программы есть контрол, у него есть ф-ция (пускай GetText). НЕВОЗМОЖНО вызвать из другой программы эту GetText. Вот еще один способ: Скриншотишь это окно, берешь прогу (Ну хотя бы OpenCV) и, зная позицию в файле, где эта строчка, распознаешь текст. P.S. Вообще эта проблема НЕ РАЗРЕШИМА. А если и разрешима, то только изуверскими способами. -------------------- Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак" |
||||
|
|||||
| W4FhLF |
|
||||||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Получить доступ к АП чужого процесса не проблема, но адрес строки нестатичен и я заранее не знаю, что искать. Там будет некоторой событие, которое известно, что вызывается после введения текста в это окно, вот на него будет повешан перехват и в момент срабатывания перехвата нам надо получить текст и поля.
Да это всё непроблема, можно внедриться в программу и вызвать функцию из её контекста, только GetText работает ведь с GDI, а там ему откуда взяться?
Ну это уже слишком
Да лишь бы работало -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
||||||
|
|||||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
W4FhLF, если ты знаешь, как получить текст из этого окна (которое не окно) изнутри процесса (ведь внетренний код это как-то делает?) и можешь внедриться, то дальше просто пошли что-нибудь (WM_COPYDATA или что-то вроде) своему процессу.
-------------------- ... |
|||
|
||||
| WERITAS |
|
|||
|
******** ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 2.5.2005 Где: Москва Репутация: нет Всего: 5 |
W4FhLF
О_О Афигеть.... Так прога на DX'е была написана тобой??????? Я тока щаз это понял... там 1000 способов передать этот текст: сокеты, файлы, тот же копидата P.S. Расписал бы сразу поподробнее -------------------- Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак" |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Вот как раз это я и хочу узнать Да нет же, программа не моя, это вообще игра, писал её ессно тоже не я -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
ну а фигли... итак имеем : событие нами успешно перехвачено и мы "внутри" - читай в отладчике и я пологаю ядерном 8)
далее ищем по всей памяти процесса строку. Нашли - ок. Не нашли ищем где можно приткнуться дебагером пораньше (я пологаю она должна быть). Имеем адрес начала строки. Ищем что на него ссылается в памяти, не забывая что у нас Inetel платформа => байтики переворачиваем. Находим указатель на строку (их мб и не один). Если указатель статичен - все ок. Память выдялется будет и адресс выделенного блока будет в нем. Ещели и он не статичен - то ставим брейкпоинт на запись по адресу указателя, и прогоняем финт еще раз, ищя где он записывается..(может это место как раз пойдет для взятия адреса этого указателя)...и т.д. до тех пор пока не найдем что-нибудь статиченое) Строка - имеется в втду что мы туда введем) онож кудато копируется 8) Обратно раскрутить не состояляет особого труда...... Это сообщение отредактировал(а) jonie - 4.7.2007, 22:59 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
jonie, это всё замечательно. Но кто даст гарантию, что в следующем билде/версии или после патча наши привязки будут актуальны? А привязываться к конкретным версиям мне не хочется. Придётся в общем рыть DX интерфейсы и делать всё по уму.
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Попробуй на их форуме спросить: если окно не самопальное, а сделано стандартными средствами DD, то должен быть способ. -------------------- ... |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |