Страница: 1 |
Страница: 1 |
Вопрос: Вписать текст в текстовое поле приложения
Добавлено: 06.12.07 10:18
Автор вопроса: The Amendment
Пытаюсь написать программу, которая должна вписывать текст в текстовое поле чужого приложения. Вопрос вот в чём: Никак не получается найти текстовое поле в окне и вписать в него текст. Подскажите пожалуйста как это можно сделать.
Заранее спасибо.
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
Mr.Smile
ICQ: 427682013
Вопросов: 14
Ответов: 464
Профиль | | #1
Добавлено: 06.12.07 14:06
Примеров уйма. Ищи по словам FindWindowEx, SetWindowText (SendMessage с WM_SETTEXT)
Номер ответа: 2
Автор ответа:
Алексей
black admin
ICQ: 261779681
Вопросов: 87
Ответов: 633
Web-сайт:
Профиль | | #2
Добавлено: 06.12.07 15:14
Вот пример с кулькулатором: http://kbyte.ru/Expert/Show.aspx?id=364
--
Кодообменник Kbyte.Ru - давай меняться!
http://kbyte.ru/code
Номер ответа: 3
Автор ответа:
Андрей
Вопросов: 10
Ответов: 30
Web-сайт:
Профиль | | #3
Добавлено: 06.12.07 17:20
Этот пример показывает как можно передовать текстовые команды, то есть сообщения в текстовые редакторы, например: Word или Блокнот и так далее. Для данного примера вам понадобиться кнопка CommandButton, разместите ее на Form1 и внесите ниже указанный код.
Private Sub Command1_Click()
AppActivate("Документ1"
SendKeys("Проверка"
End Sub
Также если написать за место Документ1, просто Д, то серовно текст вставиться в Документ1, но если у Вас открыто 2 текстовых документа, Документ1 и документ2, то обязательно надо писать Документ1 или документ2. Если вы хотите оформить все это ввиде программы для набирания текста, то можно сделатть так:
Private Sub Command1_Click()
AppActivate(Text1) 'разместите TextBox для написания программы
SendKeys(Text2) 'разместите TexyBox для написания текста
End Sub
Не забывайте, если вы пользуетесь блокнотом, то ненадо писать само название программ, а только название документа, Безымянный.
Номер ответа: 4
Автор ответа:
Сашок
ICQ: 387093431
Вопросов: 1
Ответов: 70
Профиль | | #4
Добавлено: 06.12.07 19:56
Народ, зачем так извращатся?
Ведь всем известно, что такие проблемы решаются без АПИ-функций - посредством ВБ - через DDE. Как говорится - мало кода и усилий - максимум результатов
Номер ответа: 5
Автор ответа:
Сашок
ICQ: 387093431
Вопросов: 1
Ответов: 70
Профиль | | #5
Добавлено: 06.12.07 19:58
The Amendment, я ща постучу в асю, перекину архив, там будет проект. Скомпилишь его и запустишь екзешку 2 раза. Увидишь, как с приложения в приложение передается текст!
Номер ответа: 6
Автор ответа:
Сашок
ICQ: 387093431
Вопросов: 1
Ответов: 70
Профиль | | #6
Добавлено: 06.12.07 19:59
Ай, момент, скину тебе на мыло
Номер ответа: 7
Автор ответа:
Сашок
ICQ: 387093431
Вопросов: 1
Ответов: 70
Профиль | | #7
Добавлено: 06.12.07 20:01
Все, отослал!
Номер ответа: 8
Автор ответа:
Mr.Smile
ICQ: 427682013
Вопросов: 14
Ответов: 464
Профиль | | #8
Добавлено: 07.12.07 11:10
Сашок, ты вопрос читал? :/
Номер ответа: 9
Автор ответа:
The Amendment
Вопросов: 2
Ответов: 5
Профиль | | #9
Добавлено: 07.12.07 16:10
Прошу прощения, я плохо сформулировал вопрос в первый раз.
Вот к примеру:
Нахожу окно:
hWindow = FindWindow("Класс", "Название окна"
Нахожу текстбокс:
hWindow = FindWindowEx(hWindow, 0, vbNullString, "Текстбокс"
Вписываю текст в текстбокс
SetWindowText hWindow, "Тест Тест Тест"
Загвостка вот в чём: Само окно и все элементы управления в этом окне имеют один класс - "Surface". Как можно вписать текст в такое текстовое поле?
Номер ответа: 10
Автор ответа:
Mr.Smile
ICQ: 427682013
Вопросов: 14
Ответов: 464
Профиль | | #10
Добавлено: 07.12.07 17:46
Через sendkeys и ему подобные только...
Номер ответа: 11
Автор ответа:
The Amendment
Вопросов: 2
Ответов: 5
Профиль | | #11
Добавлено: 09.12.07 11:15
Спасибо.