|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.10.2012, 05:59 | #1 |
Пользователь
Регистрация: 27.02.2009
Сообщений: 53
|
Имитация нажатия клавиш
Доброго времени суток всем.
Такая проблемка, нужно эмулировать нажатие некоторой последовательности клавиш в приложении, запушенном из под моего (ShellAPI). Делаю, вроде бы правильно, но имитация нажатий клавишь происходит в Окне моего приложения, а не чужого. Комментарий к приложенному файлу. В данном случае в чужом окне мне нужно нажать стрелку вниз для выбора 840d Turn и клавишу энтер. Посмотрите код пожалуйста, что там может быть не так. Код:
У меня будет более 20 нажатий клавиш, в различных частях различных окон. Может кто знает метод попроще? П.с. прошу прощения за вторую подряд тему, но правила форума жестко регламентируют количество решаемых вопросов на одну тему. UPD. Нужно было использовать POSTmessage.
З.Ы. Сильно не бейте за некрасивый код, мне всего лишь 15 лет
Последний раз редактировалось xaero93; 27.10.2012 в 10:09. |
27.10.2012, 10:40 | #2 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Код:
А так - не знаю, в чем дело, но вроде клавиши срабатывают нормально в открываемом окне (проверял опять же на Екселе, но с Вашими параметрами: Код:
Выскажу предположение, что нужно выбирать не только окно формы, но компонент на запущенной форме.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
27.10.2012, 13:29 | #3 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Сначала внимательно прочитайте для чего служит WM_ACTIVATE а потом почитайте про SetForegroundWindow()
|
28.10.2012, 16:21 | #4 |
Пользователь
Регистрация: 27.02.2009
Сообщений: 53
|
Нашел ошибку, код уже переписал. он видоизменился. Программа почти на финальной стадии.
Код:
Дайте предположение, почему может не отправляться в найденное приложение нажатие клавиши Ф10?
З.Ы. Сильно не бейте за некрасивый код, мне всего лишь 15 лет
|
28.10.2012, 16:32 | #5 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Ммм... в заданном приложении нет обработки клавиши ф10?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
28.10.2012, 16:40 | #6 |
Пользователь
Регистрация: 27.02.2009
Сообщений: 53
|
Хорошая попытка, но если нажимать Ф10 вручную, то действие совершается
UPD Проверил, ниодна Ф клавиша не работает, хотя действия на них назначены. Могу приложить скрин программы, если необходимо Еще круче, нажатие num клавиш тоже не происходит В чем может быть причина? Уже и не знаю, что можно предположить: Такое ощущение, что мессаги до него не доходят, еще раз перепроверил, находится ли окно. В какую сторону можно поглядеть? Код:
А чтобы послать мессагу нужно возвращать активность главной форме или нет? Происходит какая-то ерунда. Переписал код вот таким образом. теперь все работает. Код:
З.Ы. Сильно не бейте за некрасивый код, мне всего лишь 15 лет
Последний раз редактировалось xaero93; 28.10.2012 в 20:21. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Имитация нажатия клавиш | Miha85193 | Общие вопросы Delphi | 41 | 22.05.2012 02:58 |
Имитация нажатия комбинации клавиш! | stalsoft | C# (си шарп) | 2 | 24.06.2011 00:13 |
имитация нажатия клавиш | RAVAL(c) | HTML и CSS | 10 | 07.02.2011 12:29 |
Имитация нажатия клавиш в играх. | simtiko | Общие вопросы Delphi | 2 | 01.06.2010 15:02 |
Имитация нажатия клавиш | Air | Свободное общение | 28 | 04.02.2010 12:38 |