Сейчас на форуме: hgdagon, asfa, bartolomeo (+6 невидимых)

 eXeL@B —› Программирование —› Получение текста / установка текста из нестандарного окна
Посл.ответ Сообщение


Ранг: 251.8 (наставник), 17thx
Активность: 0.120
Статус: Участник
Seeker

Создано: 12 июля 2006 20:45
· Личное сообщение · #1

На примере браузера опера: как получить текст из строки адреса и поместить текст в эту строку из другого приложения?

-----
DREAMS CALL US




Ранг: 44.7 (посетитель)
Активность: 0.040
Статус: Участник

Создано: 12 июля 2006 23:03
· Личное сообщение · #2

Послать этой строке(все ровно окно ж) сообщение для перерисовки текста(поройся в MSDN), и до того надо заменить текст в памяти...




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 12 июля 2006 23:24 · Поправил: Rascal
· Личное сообщение · #3

Узнать класс окна адреса, затем найти главное окно по заголовку или классу главного окна, далее искать дочерние по классу в родительском, далее SetWindowText. Любые другие нестандартные (listview например) гораздо сложнее обработать. Если окон несколько с одним классом, то можно использовать клиентские координаты окна адреса (например известно, что окно адреса на x пикселей ниже в\л угла главного окна и правее на y л\в угла главного окна, далее WindowFromPoint и тот же SetWindowText.

-----
Недостаточно только получить знания:надо найти им приложение





Ранг: 327.3 (мудрец)
Активность: 0.250
Статус: Участник

Создано: 12 июля 2006 23:42
· Личное сообщение · #4

я когда-то пытался рипнуть данные из нестандартного listview (у касперского) - оказалось лучше всего SnagIt + ABBYY Screenshot Reader.

-----
in search of sunrise





Ранг: 251.8 (наставник), 17thx
Активность: 0.120
Статус: Участник
Seeker

Создано: 13 июля 2006 00:16
· Личное сообщение · #5

Rascal
Через GetFocus() я получаю хендл окна, проблема в том, что это не Edit и не RichEdit, поэтому ни GetWindowTextLength ни GetWindowText не работают

Rascal пишет:
можно использовать клиентские координаты окна адреса (например известно, что окно адреса на x пикселей ниже в\л угла главного окна и правее на y л\в угла главного окна, далее WindowFromPoint и тот же SetWindowText.


Попробую если найду как получить координаты каретки для получения координат окна...

-----
DREAMS CALL US





Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 13 июля 2006 00:24
· Личное сообщение · #6

=TS= пишет:
ни GetWindowTextLength ни GetWindowText не работают

Тогда поможет способ глума
Кстати, адресные строки по большчасти производные от комбобоксов, отсюда надо копать

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 88.0 (постоянный)
Активность: 0.070
Статус: Участник

Создано: 13 июля 2006 00:28
· Личное сообщение · #7

=TS=
Если есть хендл, то попробуй посылать сообщения WM_GETTEXT и WM_SETTEXT.




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 13 июля 2006 00:45
· Личное сообщение · #8

rep0A пишет:
WM_GETTEXT и WM_SETTEXT.

Как я помню GetWindowText and SetWindowText есть обёртка для Send Message, так что так. Хотя мож кто поправит

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 160.9 (ветеран), 1thx
Активность: 0.050
Статус: Участник

Создано: 13 июля 2006 00:52
· Личное сообщение · #9

Хм... А что SetDlgItemText и еже сними тоже не работают?



Ранг: 88.0 (постоянный)
Активность: 0.070
Статус: Участник

Создано: 13 июля 2006 01:13
· Личное сообщение · #10

Cigan пишет:
А что SetDlgItemText и еже сними тоже не работают?

SetDlgItemText состоит из GetDlgItem и SetWindowText.

Rascal пишет:
Как я помню GetWindowText and SetWindowText есть обёртка для Send Message

Скорее всего нет. У меня была такаяже проблема, тогда умные люди подсказали мне что для не своих программ корректнее использовать сообщения и всё заработало.




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 13 июля 2006 13:52 · Поправил: Rascal
· Личное сообщение · #11

rep0A пишет:
Скорее всего нет

Значит я что-то перепутал. Сори.

А так совет один - CB_GETCURSEL и затем CB_GETLBTEXT

[EDITED]
Токо я забыл, что надо задать текст Вроде есть сообщение чтоб получить текст из едита комбобокса, и задать соотв

-----
Недостаточно только получить знания:надо найти им приложение



 eXeL@B —› Программирование —› Получение текста / установка текста из нестандарного окна
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати