Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как послать строку в активное окно?

7.4K
15 мая 2004 года
Vesko
1 / / 15.05.2004
Всем привет!
Кто может подсказать,как послать строку в активное окно?

т.е. запускаем какой-нить текстовой редактор,потом экзешник,который из себя представляет форму с полем ввода и кнопкой,по нажатии на кнопке введеный текст должен оказаться в окне текстового редактора.
как это реализовать?

Заранее благодарю
2.0K
18 мая 2004 года
HardMix
78 / / 25.06.2003
Цитата:
Originally posted by Vesko
Всем привет!
Кто может подсказать,как послать строку в активное окно?

т.е. запускаем какой-нить текстовой редактор,потом экзешник,который из себя представляет форму с полем ввода и кнопкой,по нажатии на кнопке введеный текст должен оказаться в окне текстового редактора.
как это реализовать?

Заранее благодарю


Предлагаю использовать логику.
- Что нам надо?
Чтобы в каком-то окне оказался нужный нам текст.
-Как это сделать?
Функция SetWindowText(...)
-Что нам для этого нужно?
Хэндл окна. Предлагаю автору самому выбрать способ его получения (например, перебором и получением дочерних окон, или прямым указанием).

7.7K
19 мая 2004 года
Николай
3 / / 19.05.2004
Цитата:
Originally posted by HardMix

Предлагаю использовать логику.
- Что нам надо?
Чтобы в каком-то окне оказался нужный нам текст.
-Как это сделать?
Функция SetWindowText(...)
-Что нам для этого нужно?
Хэндл окна. Предлагаю автору самому выбрать способ его получения (например, перебором и получением дочерних окон, или прямым указанием).


The SetWindowText function changes the text of the specified window's title bar (if it has one). If the specified window is a control, the text of the control is changed. However, SetWindowText cannot change the text of a control in another application.
------------------------------------------------
помоему необходимо посылать в текстовый редактор сообщение WM_CHAR с необходимыми буковками.......

319
19 мая 2004 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by Николай

The SetWindowText function changes the text of the specified window's title bar (if it has one). If the specified window is a control, the text of the control is changed. However, SetWindowText cannot change the text of a control in another application.
------------------------------------------------
помоему необходимо посылать в текстовый редактор сообщение WM_CHAR с необходимыми буковками.......


если и текстовый редактор и вторая программа свои, то можно (имхо нужно) использовать общие ресурсы, типа MemoryMappedFile, с оповещением, например, сообщением....

2.0K
24 мая 2004 года
HardMix
78 / / 25.06.2003
Цитата:
Originally posted by xelos

если и текстовый редактор и вторая программа свои, то можно (имхо нужно) использовать общие ресурсы, типа MemoryMappedFile, с оповещением, например, сообщением....


Дык

Цитата:
т.е. запускаем какой-нить текстовой редактор

. А если текстовой редактор свой то так выдр№чиваться не надо. Он же знает сразу какого класса окно текст которого надо изменить, и сразу может узнать его хэндл FindWindow'ом. Дальше SetWindowText.
2Николай: послушай, попробуй сам использовать SetWindowText(...) и посмотри что у тебя из этого выйдет. Я когда узнавал хэндл чужого окна и менял его именно так (вроде :} пошел рыть старые исходники чтоб точно! :angel: )

7.7K
25 мая 2004 года
Николай
3 / / 19.05.2004
Только что попробовал.....вы не правы устанавливается заголовок окна....8)
5.4K
25 мая 2004 года
ALS
20 / / 05.02.2004
Если окно в другом своем приложении, то WM_COPYDATA
2.0K
26 мая 2004 года
HardMix
78 / / 25.06.2003
Цитата:
Originally posted by ALS
Если окно в другом своем приложении, то WM_COPYDATA


Хех, дык

Цитата:
т.е. запускаем какой-нить текстовой редактор


Я так думаю, если КАКОЙ-НИТЬ то явно приложение может быть и не свое! :)

Цитата:
Только что попробовал.....вы не правы устанавливается заголовок окна....


:o А что нам требуется? А если хэндл окна принадлежит окну класса RICHEDIT или EDIT что по вашему произойдет? :D Разве не это от нас требуется?

1.8K
26 мая 2004 года
MishaSt
170 / / 11.08.2003
Цитата:
Originally posted by HardMix

Хех, дык

Я так думаю, если КАКОЙ-НИТЬ то явно приложение может быть и не свое! :)

:o А что нам требуется? А если хэндл окна принадлежит окну класса RICHEDIT или EDIT что по вашему произойдет? :D Разве не это от нас требуется?


xelos прав, посылкой мессаги можно и нужно установить текст, но этот текст должен быть в пространстве процесса, который владеет текст боксом. Найти окно можно FindWindow. Смотрите функции WriteProcessMemory, ReadProcessMemory, но для них нужны првилегии. Если нет, то можно эмулировать нажатие клавишы, и послыть так текст. Почему я это знаю? Просто сообщения - основа shatter типа атак. А я люблю играться сплоитами. Вот статья Digital Scream, как не имею привелегий, можно спрятать имя проги, и многое другое:
http://www.xakep.ru/post/21789/default.htm
Digital Scream - видущий статьиписатель по этой теме в России.

7.7K
26 мая 2004 года
Николай
3 / / 19.05.2004
Атор темы говорил что нужно что бы строка оказалась в окне текстового редактора, этого не произойдет если искать просто окно типа Notepad поэтому INHO что бы не заморачиваться легче посылать буковки.....к тому же если делать с классами окна это подойдет только для конкретно взятого текстового редактора а посылать буковки для любого :)
===============================================
Читайте доки они рулез
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог