Как послать строку в активное окно?
Кто может подсказать,как послать строку в активное окно?
т.е. запускаем какой-нить текстовой редактор,потом экзешник,который из себя представляет форму с полем ввода и кнопкой,по нажатии на кнопке введеный текст должен оказаться в окне текстового редактора.
как это реализовать?
Заранее благодарю
Всем привет!
Кто может подсказать,как послать строку в активное окно?
т.е. запускаем какой-нить текстовой редактор,потом экзешник,который из себя представляет форму с полем ввода и кнопкой,по нажатии на кнопке введеный текст должен оказаться в окне текстового редактора.
как это реализовать?
Заранее благодарю
Предлагаю использовать логику.
- Что нам надо?
Чтобы в каком-то окне оказался нужный нам текст.
-Как это сделать?
Функция SetWindowText(...)
-Что нам для этого нужно?
Хэндл окна. Предлагаю автору самому выбрать способ его получения (например, перебором и получением дочерних окон, или прямым указанием).
Предлагаю использовать логику.
- Что нам надо?
Чтобы в каком-то окне оказался нужный нам текст.
-Как это сделать?
Функция 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 с необходимыми буковками.......
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, с оповещением, например, сообщением....
если и текстовый редактор и вторая программа свои, то можно (имхо нужно) использовать общие ресурсы, типа MemoryMappedFile, с оповещением, например, сообщением....
Дык
. А если текстовой редактор свой то так выдр№чиваться не надо. Он же знает сразу какого класса окно текст которого надо изменить, и сразу может узнать его хэндл FindWindow'ом. Дальше SetWindowText.
2Николай: послушай, попробуй сам использовать SetWindowText(...) и посмотри что у тебя из этого выйдет. Я когда узнавал хэндл чужого окна и менял его именно так (вроде :} пошел рыть старые исходники чтоб точно! :angel: )
Если окно в другом своем приложении, то WM_COPYDATA
Хех, дык
Я так думаю, если КАКОЙ-НИТЬ то явно приложение может быть и не свое! :)
:o А что нам требуется? А если хэндл окна принадлежит окну класса RICHEDIT или EDIT что по вашему произойдет? :D Разве не это от нас требуется?
Хех, дык
Я так думаю, если КАКОЙ-НИТЬ то явно приложение может быть и не свое! :)
:o А что нам требуется? А если хэндл окна принадлежит окну класса RICHEDIT или EDIT что по вашему произойдет? :D Разве не это от нас требуется?
xelos прав, посылкой мессаги можно и нужно установить текст, но этот текст должен быть в пространстве процесса, который владеет текст боксом. Найти окно можно FindWindow. Смотрите функции WriteProcessMemory, ReadProcessMemory, но для них нужны првилегии. Если нет, то можно эмулировать нажатие клавишы, и послыть так текст. Почему я это знаю? Просто сообщения - основа shatter типа атак. А я люблю играться сплоитами. Вот статья Digital Scream, как не имею привелегий, можно спрятать имя проги, и многое другое:
http://www.xakep.ru/post/21789/default.htm
Digital Scream - видущий статьиписатель по этой теме в России.
===============================================
Читайте доки они рулез