Страница: 1 |
Страница: 1 |
Вопрос: Заполнить текстовое поле в чужем приложении
Добавлено: 08.07.04 20:54
Автор вопроса: kmk
Здравствуйте!
Есть приложение с тесктовыми полями. Могу ли я заполнить эти поля из своей программы?
Спасибо!
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #1
Добавлено: 08.07.04 21:26
Самый простой способ, это "отсылать" клавиши SendKeys...
Только это при условии что окно активно...
Между полями переходить посылая клавишу Tab...
Можно заполнять и программно, с пом. EM_SETTEXTEX, но это сложнее...
Номер ответа: 2
Автор ответа:
ViktorZ
ICQ: 271202919
Вопросов: 56
Ответов: 837
Профиль | | #2
Добавлено: 10.07.04 04:54
Sne везде успеет ну прям не успеваешь на некоторыевпросы отвечать. Уже знаю кто будет первым ответившим.
Номер ответа: 3
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #3
Добавлено: 10.07.04 05:55
Я думаю, что ф-я SetWindowCaption или SetWindowText могут здорово помочь
Но нужен Хэндл. Его можно получить через WindowFromPoint или типа того...
Номер ответа: 4
Автор ответа:
kmk
Вопросов: 16
Ответов: 18
Профиль | | #4
Добавлено: 10.07.04 11:33
Здравствуйте!
Друзья, а какой функцией найти хендл контрола в окне, у текстового поля он должОн быть вроде?
Спасибо!
Номер ответа: 5
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #5
Добавлено: 10.07.04 11:51
2Vik, просто день был свободный
2Morpheus, а зачем вызывать эти АПИ, если они все-равно, попросту будут отсылать сообщение WM_SETTEXT...
Хотя если она есть, значит это кому-нибудь нужно
2kmk, порядок может быть такой (а может быть и другой):
1. Находишь хэндл окна, где находятся необходимые текстовые поля... (способов много, и это зависит от того, что именно известно тебе о "подопытном" приложении)
2. Использую АПИ ф-ию EnumChildWindows, перебераеь все эллементы на окошке, при этом сравнивая класс окна (наверное, GetWindowClassName) с классом по имени "Edit".
3. Если совпадает, то ты получил очередное текстовое поле...
Номер ответа: 6
Автор ответа:
Mihalыch
ICQ: 373-509-101
Вопросов: 56
Ответов: 330
Профиль | | #6
Добавлено: 11.07.04 06:49
ParentHWnd = FindWindow(vbNullString, "Caption нужного окна"'находит манипулятор для родительского окна
ChildHWnd = FindWindowEx(ParentHWnd, 0, "ThunderRT6TextBox", vbNullString)'находит манипулятор дочернего окна
'ThunderRT6TextBox - название класса для TextBox'ов
FuncResult = SetWindowText(ChildHWnd, "Новй текст"
'Правда в TextBox вставить текст у меня не получилось, Caption формы или кнопки, да а TextBox почему то нет.
Номер ответа: 7
Автор ответа:
kmk
Вопросов: 16
Ответов: 18
Профиль | | #7
Добавлено: 11.07.04 17:00
Спасибо, вроде получилось.