С Новым годом! Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
20 / 20 / 8
Регистрация: 06.11.2013
Сообщений: 65
Записей в блоге: 1

Эмуляция нажатия клавиши в чужой программе., Windows XP

06.11.2013, 13:22. Показов 2799. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые, может сможет кто-нибудь подсказать как справиться с такой проблемой. Есть чужая программа. Нужно ей управлять при помощи своей программы. Все вроде сделал, управляю как положено окнами и кнопками за исключением одного момента. Есть окно класса Edit. Я могу заносить в него любой текст, читать текст, управлять курсором. Но выход должен происходить только по клавише Enter. Уже который день бьюсь об стенку. Пробовал и через keybd_event() и SendMessage() и PostMessage(). Ну никак эмуляция нажатия VK_RETURN не проходит. Перерыл интернет, оказалось, что это довольно распространенная проблема, но решения так и не нашел. Может кто-нибудь сталкивался с такой задачей и сможет подсказать что-нибудь полезное?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.11.2013, 13:22
Ответы с готовыми решениями:

Эмуляция нажатия клавиши
Подскажите плс как можна емулировать нажатие клавиши в неактивном окне.

Эмуляция нажатия клавиши
Хочу узнать, можно ли в "паскаль АБЦ нэт" осуществить эмуляцию нажатия какой либо клавиши на клавиатуре или мыши, то есть написать...

Эмуляция нажатия клавиши?
Съемулировать нажатие клавишы мыши Ответ нашел: QTest::mouseClick(this,Qt::LeftButton,0,QPoint(10,10),-1); Помогите исправить...

2
 Аватар для FreeMan108
121 / 121 / 32
Регистрация: 04.03.2013
Сообщений: 370
06.11.2013, 15:34
Лучший ответ Сообщение было отмечено k399et как решение

Решение

C++
1
SendMessage (hEdit, WM_KEYDOWN, VK_RETURN, NULL, NULL);
Должно работать. Иначе выкладывайте код.
0
20 / 20 / 8
Регистрация: 06.11.2013
Сообщений: 65
Записей в блоге: 1
06.11.2013, 17:30  [ТС]
Цитата Сообщение от FreeMan108 Посмотреть сообщение
C++
1
SendMessage (hEdit, WM_KEYDOWN, VK_RETURN, NULL, NULL);
Должно работать. Иначе выкладывайте код.
У меня, к сожалению, нет под рукой той программы, которой нужно управлять. Пришлось написать простенький эмулятор. И все замечательно сработало. Я несколько в растерянности. Я перебрал все возможные варианты, в том числе и предложенный. Фокус нормально переводился, текст вставлялся, а нажатие клавиши не работало. Правда в той программе система окон посложнее. Со множеством дочерних окон. Завтра попробую более внимательно разобрать. Ваш вариант с эмулятором
C++
1
2
3
4
5
6
7
// Эмулятор - программа, содержащая на форме _fmParent один компонент Edit1 с классом "TEdit".
// При нажатии клавиши "Enter" форма закрывается.
 
void __fastcall T_fmParent::Edit1KeyDown(TObject *Sender, WORD &Key,  TShiftState Shift)
{
   if( Key == VK_RETURN ) Close();
}//---------------------------------------------------------------------------
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//_____________________________________________________________________________________________________
void __fastcall T_fmInterceptor::BitBtn1Click(TObject *Sender)
{
HWND hParent = FindWindow( "T_fmParent", "FormParent" );                                // Находим окно эмулятора.
 
     if( hParent )
     {
         hEdit = NULL;
         EnumChildWindows( hParent, (WNDENUMPROC)EnumChild, (LPARAM)"TEdit" );  // Перебираем дочерние окна.
 
     if( hEdit )  SendMessage( hEdit, WM_KEYDOWN, VK_RETURN, NULL );                 // Нажатие клавиши.
       
     }
}
прекрасно сработал. Большое спасибо. Возможно я что-то сделал неаккуратно и понапрасну Вас дернул.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.11.2013, 17:30
Помогаю со студенческими работами здесь

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

Эмуляция нажатия клавиши
Подскажите плс как емулировать нажатие клавиши в неактивном окне?

Эмуляция нажатия клавиши
Подскажите как отправить окну сообщение, что нужно нажать клавишу Enter? Точнее напишите функцию SendMessage с параметрами для клавиши...

Эмуляция нажатия клавиши в игре
Добрый день. Необходимо "программно нажать" на клавишу на клавиатуре внутри игры. Например, стоят бинд на клавишу Z, и нужно эмулировать...

Корректная эмуляция нажатия клавиши
Всем доброго времени суток , я столкнулся с такой проблемой . При попытке эмулировать нажатия клавиш "abcdefghijklmno"...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru