![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 14.07.2012
Сообщений: 31
|
![]()
Добрый день , возникла такая проблемка , нужно сделать что то вроде этого :
к примеру в edit1 есть текст , мне нужно чтоб этот текст попал туда где находится курсор , к примеру курсор мигает в поле для поиска на сайте и мне нужно чтоб в это место попал текст из edit1 . кто то знает как это сделать ? и все это должно быть программно ... post,get запросы НЕ предлагать , нужно чтоб все происходило в реальном времени ... пож очень нужно , заранее всем спасибо иными словами: Как определить в каком элементе формы находится курсор(для текстовых полей ввода)? Например, чтобы узнать вставлять текст в этот элемент или нет и если надо вставить туда текст Последний раз редактировалось admin-one; 13.08.2013 в 23:36. |
![]() |
![]() |
![]() |
#2 |
БохЪ
Форумчанин
Регистрация: 30.09.2009
Сообщений: 724
|
![]()
Ну, все довольно просто. Для начала, нужно получить Handle окна на котором стоит фокус ввода. Для этого нужно пройтись по всем существующим окнам и проверить если у них фокус. Если фокус установлен, можно смело вписывать текст в это окно:
Код:
В планах порабощение вселенной...
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]()
Может быть есть способ другой... Какая конечная цель программы? Быстрый поиск на просматриваемой странице чего-либо? А обычные ctrl-c/ctrl-v не подойдут?
Один из вариантов - хуком или просто по таймеру или ещё как искать активное окно (см например GetForegroundWindow), затем перебор элементов окна (см FindWindow/FindWindowEx или EnumChildWindows), затем вставка текста (см SendMessage+WM_SETTEXT/WM_PASTE или SetWindowText). НО! Тут есть куча (большая) неприятностей. Например, текстовые поля могут иметь разные классы - какой-нибудь TMyEdit. И если это ещё можно определить по свойствам компонента, то проблему с текстовыми полями которые не являются оконными компонентами таким способом решить нельзя (это касается и многих браузеров). Обойти, конечно, можно - имитация ctrl-v через буфер обмена, но нет гарантии что курсор в поле ввода. Далее ещё надо будет предусмотреть ситуацию исключающую повторное копирование текста - тут можно приципить код к "горячей клавише". В итоге приходим к тому с чего начали (хотя чуть более быстрее). |
![]() |
![]() |
![]() |
#4 | |
Пользователь
Регистрация: 14.07.2012
Сообщений: 31
|
![]() Цитата:
Этот код работает , но только не там где мне нужно , мне нужно чтоб работал на всех приложениях , будь то браузер , текстовик ,ворд , паинт и т.д , а этот только на моем приложении .... есть еще идеи ? |
|
![]() |
![]() |
![]() |
#5 |
БохЪ
Форумчанин
Регистрация: 30.09.2009
Сообщений: 724
|
![]()
admin-one, этот код должен работать на любом приложении. Конечно же, при условии, что это приложение использует оконные компоненты.
В планах порабощение вселенной...
|
![]() |
![]() |
![]() |
#6 | |
Пользователь
Регистрация: 14.07.2012
Сообщений: 31
|
![]() Цитата:
Код HTML:
MainProcessID := GetWindowThreadProcessId(Handle, nil); EnumWindows(@CheckWindow, LParam(MainProcessID)); |
|
![]() |
![]() |
![]() |
#7 |
БохЪ
Форумчанин
Регистрация: 30.09.2009
Сообщений: 724
|
![]()
Скорее всего, гугл хром использует свои компоненты. Рисованные контролы, которые не являются оконными. Попробуйте на другом приложении.
В планах порабощение вселенной...
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Скопировать текст содержащийся в ячейке таблицы и вставить этот текст в место документа помеченное закладкой. | LiliPOOtin | Microsoft Office Word | 3 | 17.04.2013 19:51 |
Можно ли как-нибудь удалить, а затем вставить в нужное место в текстовике текст, не копируя весь документ. | Jony217 | PHP | 3 | 17.01.2013 10:11 |
Курсор в нужное место | Apostol13 | Общие вопросы Delphi | 3 | 13.06.2011 19:38 |
переход на заданный сайт или как вставить в заданное место заданный текст | Biker89 | Общие вопросы Delphi | 23 | 29.05.2011 01:59 |
Поставить CreateThread в нужное место | Sam Gold | C/C++ Сетевое программирование | 4 | 20.05.2010 23:46 |