Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
millworm
0 / 0 / 0
Регистрация: 27.04.2012
Сообщений: 74
#1

Как ввести текст в поле ввода другой программы? - C++

02.09.2014, 01:11. Просмотров 1045. Ответов 6
Метки нет (Все метки)

подскажите каким образом можно ввести текст в поле ввода другой программы?
определил HWND но как дальше найти поле ввода и вставить туда текст?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.09.2014, 01:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как ввести текст в поле ввода другой программы? (C++):

Как передавать данные от одной программы к другой? - C++
Искал темы похожие, не нашел, простите если не туда. Такая задача: написать 2 программы. Первая спрашивает пользователя название файла...

В memo1 автоматически пишет текст,который был написан в поле ввода - C++ Builder
Как сделать так. Пишешь в поле ввода текст и в memo1 автоматически пишет текст,который был написан в поле ввода.

Эмуляция ввода в Edit другой программы - C++ Builder
Собственно сабж. Есть необходимость написать в TEdit сторонней программы. Она сделана под консоль, и там нет кнопки "написать", и все...

Перехват ввода-вывода другой программы - C++ Builder
Имеется игровой сервер, запускается ввиде консоли. В частности, сервер игры CS Source. Нужно сделать так, чтобы я мог получать всю...

Получить текст другой программы (из эдита) - C++ Builder
Привет форум... Вот зачотел получить текст от другой программы (с едита) Так вот, делаю так { wchar_t *buf; HWND hWnd2,hWnd =...

Как ввести математические функции в поле - C++ Builder
Как ввести математические функции в поле к примеру я пишу: int x=5; int a=StrToInt(Edit1->Text); Label3->Caption=a; а потом я...

6
Alex5
1086 / 747 / 116
Регистрация: 12.04.2010
Сообщений: 1,908
02.09.2014, 01:37 #2
Передача данных из одного приложения в другое
Функция keybd_event():


Добавлено через 2 минуты
Поиск, перебор дочерних окон: FindWindowsEx(), EnumChildWindows().
0
millworm
0 / 0 / 0
Регистрация: 27.04.2012
Сообщений: 74
03.09.2014, 02:38  [ТС] #3
что то не совсем получается найти форму ввода
пробовал через Voyeur находит только главное приложение и класс

Добавлено через 23 часа 51 минуту
а из этих логов spy++ можно чтониубдь вытащить для решения проблемы?
Кликните здесь для просмотра всего текста
Код
<00001> 01600D24 S WM_MOUSEACTIVATE hwndTopLevel:01600D24 nHittest:HTCLIENT uMsg:WM_LBUTTONDOWN
<00002> 01600D24 R WM_MOUSEACTIVATE fuActivate:MA_ACTIVATE
<00003> 01600D24 S WM_WINDOWPOSCHANGING lpwp:0031F0C0
<00004> 01600D24 R WM_WINDOWPOSCHANGING
<00005> 01600D24 S WM_NCPAINT hrgn:00000001
<00006> 01600D24 R WM_NCPAINT
<00007> 01600D24 S WM_ERASEBKGND hdc:4D015309
<00008> 01600D24 R WM_ERASEBKGND fErased:Истина
<00009> 01600D24 S WM_WINDOWPOSCHANGED lpwp:0031F0C0
<00010> 01600D24 R WM_WINDOWPOSCHANGED
<00011> 01600D24 S WM_ACTIVATEAPP fActive:Истина dwThreadID:00000000
<00012> 01600D24 R WM_ACTIVATEAPP
<00013> 01600D24 S WM_NCACTIVATE fActive:Истина
<00014> 01600D24 R WM_NCACTIVATE
<00015> 01600D24 S WM_ACTIVATE fActive:WA_CLICKACTIVE fMinimized:Ложь hwndPrevious:(не определено)
<00016> 01600D24 S WM_IME_SETCONTEXT fSet:1 iShow:C000000F
<00017> 01600D24 R WM_IME_SETCONTEXT
<00018> 01600D24 S WM_SETFOCUS hwndLoseFocus:(не определено)
<00019> 01600D24 R WM_SETFOCUS
<00020> 01600D24 R WM_ACTIVATE
<00021> 01600D24 S WM_IME_SETCONTEXT fSet:0 iShow:C000000F
<00022> 01600D24 R WM_IME_SETCONTEXT
<00023> 01600D24 S WM_IME_SETCONTEXT fSet:1 iShow:C000000F
<00024> 01600D24 R WM_IME_SETCONTEXT
<00025> 01600D24 S WM_CAPTURECHANGED hwndNewCapture:00000000
<00026> 01600D24 R WM_CAPTURECHANGED
<00027> 01600D24 S WM_IME_SETCONTEXT fSet:0 iShow:C000000F
<00028> 01600D24 R WM_IME_SETCONTEXT
<00029> 01600D24 S WM_IME_SETCONTEXT fSet:1 iShow:C000000F
<00030> 01600D24 R WM_IME_SETCONTEXT
<00031> 01600D24 S WM_CAPTURECHANGED hwndNewCapture:00000000
<00032> 01600D24 R WM_CAPTURECHANGED
<00033> 01600D24 P WM_KEYDOWN nVirtKey:'S' cRepeat:1 ScanCode:1F fExtended:0 fAltDown:0 fRepeat:0 fUp:0
<00034> 01600D24 P WM_CHAR chCharCode:'115' (115) cRepeat:1 ScanCode:1F fExtended:0 fAltDown:0 fRepeat:0 fUp:0
<00035> 01600D24 P WM_KEYUP nVirtKey:'S' cRepeat:1 ScanCode:1F fExtended:0 fAltDown:0 fRepeat:1 fUp:1
<00036> 01600D24 P WM_KEYDOWN nVirtKey:'S' cRepeat:1 ScanCode:1F fExtended:0 fAltDown:0 fRepeat:0 fUp:0
<00037> 01600D24 P WM_CHAR chCharCode:'115' (115) cRepeat:1 ScanCode:1F fExtended:0 fAltDown:0 fRepeat:0 fUp:0
<00038> 01600D24 P WM_KEYUP nVirtKey:'S' cRepeat:1 ScanCode:1F fExtended:0 fAltDown:0 fRepeat:1 fUp:1
<00039> 01600D24 P message:0x0118 [Нет данных] wParam:0000FFFF lParam:0015A744
<00040> 01600D24 P message:0x0118 [Нет данных] wParam:0000FFFF lParam:0015A744
<00041> 01600D24 S WM_NCACTIVATE fActive:Ложь
<00042> 01600D24 R WM_NCACTIVATE fDeactivateOK:Истина
<00043> 01600D24 S WM_ACTIVATE fActive:WA_INACTIVE fMinimized:Ложь hwndPrevious:(не определено)
<00044> 01600D24 R WM_ACTIVATE
<00045> 01600D24 S WM_ACTIVATEAPP fActive:Ложь dwThreadID:0000267C
<00046> 01600D24 R WM_ACTIVATEAPP
<00047> 01600D24 S WM_KILLFOCUS hwndGetFocus:(не определено)
<00048> 01600D24 R WM_KILLFOCUS
<00049> 01600D24 S WM_IME_SETCONTEXT fSet:0 iShow:C000000F
<00050> 01600D24 R WM_IME_SETCONTEXT
0
Alex5
1086 / 747 / 116
Регистрация: 12.04.2010
Сообщений: 1,908
03.09.2014, 18:01 #4
Цитата Сообщение от millworm Посмотреть сообщение
а из этих логов spy++
Здесь - сообщения, которые окно получает.
Ещё в spy++ есть команда "Найти окно". Можно посмотреть структуру дочерних окон.

"найти форму ввода" - а она является окном? (Что в spy++ ? ) Например, в браузере есть окно класса "Internet Explorer_Server". А для формы ввода на web-странице нет дочернего окна.
0
Миниатюры
Как ввести текст в поле ввода другой программы?  
millworm
0 / 0 / 0
Регистрация: 27.04.2012
Сообщений: 74
04.09.2014, 05:57  [ТС] #5
дело в том что для того приложения нет такого количества окон
0
Миниатюры
Как ввести текст в поле ввода другой программы?  
Alex5
1086 / 747 / 116
Регистрация: 12.04.2010
Сообщений: 1,908
04.09.2014, 22:48 #6
Цитата Сообщение от millworm Посмотреть сообщение
из этих логов spy++ можно что-нибудь вытащить для решения проблемы?
См. строки 33-38, сообщения о нажатии клавиш. Можно попробовать отправить сообщение:
C++
1
2
3
4
PostMessage(hwnd, WM_KEYDOWN,  'A', ...); // нажата клавиша A 
    Sleep(100);
    PostMessage(hwnd, WM_KEYUP,  'A', ...); // отпущена 
    Sleep(100);
0
millworm
0 / 0 / 0
Регистрация: 27.04.2012
Сообщений: 74
04.09.2014, 23:53  [ТС] #7
а lParam и WParam попробовать из логов? (wParam:0000FFFF lParam:0015A744)

Добавлено через 38 минут
только что проверил, пока не нажмешь на текстбокс для ввода, то на нажатия никак не реагирует
0
04.09.2014, 23:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.09.2014, 23:53
Привет! Вот еще темы с ответами:

Как сделать стандартное поле для ввода пароля ? - C++ Builder
Здравствуйте! подкиньте пожалуйста парочку идей, как можно сделать стандартное поле для ввода пароля(* вместо введенного символа). Только...

Как определить - выделен ли текст в поле Edit ? - C++ Builder
Требуется ограничить ввод значений в поле Edit диапазоном 0-255. Можно, конечно, сделать проверку, если введенное значение больше 255,...

Как в OneSelectCell получить номер ячейки по которой кликнул и ввести туда текст? - C++ Builder
Как получить номер ячейки по которой кликнул и ввести туда текст?

Как поймать отключение другой программы? - C++ Builder
Доброго дня. Не подскажите как поймать отключение другой программы? К примеру при закрытии oперы мне нужно запустить другую программу. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru