16 / 16 / 5
Регистрация: 20.03.2009
Сообщений: 123
|
||||||
1 | ||||||
Поле чужой программы. Не могу получить текст21.07.2010, 10:34. Показов 17320. Ответов 25
Метки нет (Все метки)
Имеется окно другой (не мной созданной) программы. На нем есть поле ввода данных и две кнопки. Необходимо получить данные из поля. Делаю так:
0
|
21.07.2010, 10:34 | |
Ответы с готовыми решениями:
25
Получить иконку чужой программы по названию класса Как получить данные с чужой программы в свою? Как ввести текст в поле ввода другой программы? Как вставить текст в текстовое поле другой программы |
КотЪ
219 / 219 / 60
Регистрация: 26.05.2009
Сообщений: 688
|
|
21.07.2010, 15:47 | 2 |
Возможно в других программах текстовое поле - не TEdit?
0
|
233 / 95 / 15
Регистрация: 31.12.2009
Сообщений: 224
|
|
21.07.2010, 16:26 | 3 |
Именно так и есть.
NameGrey, среди утилит от Borland'а имеется WinSight. Запускаете её и ищете среди списка окон Ваше окно, а в нём дочернее (child) окно Edit. Изымаете оттуда имя класса и дальше работате по известной Вам схеме. Будут ещё вопросы, пишите
1
|
873 / 544 / 117
Регистрация: 24.11.2009
Сообщений: 1,329
|
||||||
21.07.2010, 17:17 | 4 | |||||
здесь Ошибка при получении текста из Edit-а другой программы
Добавлено через 13 минут вот только что проверил
0
|
16 / 16 / 5
Регистрация: 20.03.2009
Сообщений: 123
|
|
21.07.2010, 20:16 [ТС] | 5 |
Чёрный Медведь, это, действительно, дельная программа... не знал о ней даже. Она отображает много разных окон(скрытых в том числе). Однако моего окна там нет . Возможно, есть еще какой-то способ?
0
|
873 / 544 / 117
Регистрация: 24.11.2009
Сообщений: 1,329
|
|
21.07.2010, 20:23 | 6 |
знаешь вот возьми програмку.Направишь курсор мыши на нужный контрол и нажмешь i в любой раскладке.Увидишь все о своем окне - может ты где-то ошибся.Да не забудь если ты запускаешь любую другую прогу после этой не забывай обновлять основную - там кнопка есть.
2
|
16 / 16 / 5
Регистрация: 20.03.2009
Сообщений: 123
|
|
21.07.2010, 20:45 [ТС] | 7 |
igoriy, прога помогла. КлассНэйм оказался не TEdit, а просто Edit. Все работает, как часы!
0
|
0 / 0 / 0
Регистрация: 06.05.2010
Сообщений: 14
|
|
24.09.2010, 09:20 | 8 |
ребята, это всё хорошо, спасибо вам огромное.
Но если в окошке несколько Edit-ов и они не названы никак, как выбрать нужный? Добавлено через 14 минут даже не так - на окне вкладка без названия как мне найти нужный edit без названия, если я знаю его содержимое - отличное от других можно все перебрать по содержимому - подскажите реализацию пожалуйста
0
|
873 / 544 / 117
Регистрация: 24.11.2009
Сообщений: 1,329
|
|
24.09.2010, 09:50 | 9 |
Я так понимаю- у тебя есть окно хэнл которого ты можешь найти.
В окошке несколько едитов у которых одинаковый класс и WindowsName= ''. Тебе нужно найти хэндл какого то одного едита в котором есть текст отличный от других едитов?
0
|
0 / 0 / 0
Регистрация: 06.05.2010
Сообщений: 14
|
|
24.09.2010, 10:11 | 10 |
У меня есть окно хэндл которого я нахожу
в нём первая вкладка хэндл которой я уже не знаю как найти на этой вкладке несколько Edit-ов, один из которых мне нужен (его исходное значение я знаю) Я даже не гонюсь за красотой решения - мне функциональность нужна. Посидев пару дней и так ничего и не всосав реализовал вызов нужного меню тупо кликами мыши в нужных местах. Теперь кликаю в нужном Edit-е, далее забиваю H:=GetActiveWindow и получаю 0 getFocus даёт тот же ноль что не так? можно конечно пойти и дальше тупым путём - имитировать backspace и забить необходимое, но в поле уже может быть нужное значение и его может и не нужно будет менять... Покажите что нибудь похожее - забить в нужные поля нужные значения.
0
|
873 / 544 / 117
Регистрация: 24.11.2009
Сообщений: 1,329
|
||||||
24.09.2010, 10:46 | 11 | |||||
после того как ты нашел хэндл главного окна - тебе нужно пользоват функцию
0
|
0 / 0 / 0
Регистрация: 06.05.2010
Сообщений: 14
|
|
24.09.2010, 11:14 | 12 |
Спасибо, дескриптор вкладки я нашёл так:
ChildH:=FindWindowEx(FindWindow(nil,'Number'),0,'SysTabControl32',nil) Теперь на этой вкладке мне нужно искать Edit с помощью FindWindowEx, вместо дескриптора родительского окна вставив ChildH? Или мне сразу в родительском нужно было искать Edit?
0
|
873 / 544 / 117
Регистрация: 24.11.2009
Сообщений: 1,329
|
||||||
24.09.2010, 11:25 | 13 | |||||
сразу в родительском
1
|
0 / 0 / 0
Регистрация: 06.05.2010
Сообщений: 14
|
|
24.09.2010, 11:52 | 14 |
Спасибо, ничего не понял
попробую разобраться...
0
|
873 / 544 / 117
Регистрация: 24.11.2009
Сообщений: 1,329
|
||||||||||||||||
24.09.2010, 11:57 | 15 | |||||||||||||||
тоесть мы первый раз даем ей хэндл родительского окна и она находит все дочерние окна- как цикл потом мы получаем название окна
0
|
0 / 0 / 0
Регистрация: 06.05.2010
Сообщений: 14
|
|
24.09.2010, 12:36 | 16 |
Вставил всё это в свою программулину.
Выдаёт четыре дескриптора - трёх кнопок и одного компонента SysTabControl32, именно на нём висят Edit-ы, дескрипторов самих Edit-ов нет
0
|
873 / 544 / 117
Регистрация: 24.11.2009
Сообщений: 1,329
|
|
24.09.2010, 13:03 | 17 |
ну тогда попробуй вставить в этот код хэндл SysTabControl32 как родительский
0
|
Xander Bass
|
24.09.2010, 13:27
#18
|
Не по теме: NameGrey, BoozZzilla, товарищи, впечатление такое, что вы дружно клавиатурный шпион пишете.
0
|
igoriy
|
24.09.2010, 13:29
#19
|
Не по теме: а здесь где-то присутствуют хуки?или промелькнула фраза DLL
0
|
Xander Bass
|
24.09.2010, 13:33
Поле чужой программы. Не могу получить текст
#20
|
Не по теме: igoriy, а при чём тут хуки или DLL? Вы только вдумайтесь: ребятам нужно считать текст с чужого Edit'а :)
0
|
24.09.2010, 13:33 | |
Не могу получить исходный текст страницы Не могу получить весь текст из edit CefSharp не могу получить текст открытой страницы Получить текст другой программы (из эдита) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |