Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как эмулировать нажатие клавиш на клавиатуре для чужой программы [D7, Win2k, WinXP]


Страницы:   1 2 3

ANB ©   (2005-05-04 18:04:00) 

Пытаюсь эмулировать нажатие клавиш для программ написанных на Magic (вряд ли кто слышал). Программы пишут наши проги, а исходников оболочки нет. Работает как интерпретатор. Столкнулся с проблемой : не могу эмулировать по человечески нажатие клавиш. Для делфовых приложений сделал через WM_KEYDOWN, WM_KEYUP и WM_CHAR. Все работает. А для Magic смог эмулировать только через keybd_event. Это плохо, так как при работе нельзя будет переключатся в другие программы.

Кто подскажет, куда рыть при разбирательстве ? Какими хитрым способом этот д..й Magic может обрабатывать сообщения клавиатуры ? Мышь он по человечески обрабатывает.

Я пробовал посылать WM_KEYDOWN, WM_KEYUP и WM_CHAR и главному окну и MDI Child и едитам - эффекта 0. Даже просто буквы и цифры не печатаются.


ANB   (2005-05-05 09:24:00) [41]

Вот козлы. Ну никак сообщения не ест. Причем он их получает и выбирает из очереди, я это хуком вижу. И, похоже, полностью игнорит. А как определить момент, что он уже вытащил клавишу через GetKeyState и можно записывать следующую ?


alpet   (2005-05-04 18:09:00) [42]

Может он просто не ловит сообщения, а использует функции типа Get(Async)KeyState. Попробуй внедрить библиотеку с клавирным хуком которая будет устанавливать нажатия клавиш с помощью функции SetKeyboardState (работает в пределах одного потока), в момент обработки сообщения WM_KEYDOWN.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо