| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > отмена нажатий клавиш |
| Автор: Mind_master 20.10.2007, 14:27 |
| Мне нужно ловить клик мыши при нажатом альте. Проверяю нажатия в таймере через GetAsyncKeyState(). А как сделать так, чтобы после проверки клик не срабатывал? |
| Автор: VICTAR 20.10.2007, 15:45 |
| Ловишь в своем приложении или во всей системе? |
| Автор: Mind_master 20.10.2007, 17:45 |
| по всей системе! |
| Автор: Alexeis 20.10.2007, 17:57 |
| Тогда нужен глобальный хук. Только он может отменить нажатие клавиш. |
| Автор: Mind_master 22.10.2007, 10:26 |
| А проще нельзя? |
| Автор: Alexeis 22.10.2007, 10:32 |
| Есть еще способ внедрения в системную библиотеку и вставка перехода на свою функцию, но врядли это можно назвать более простым способом. |
| Автор: Mind_master 22.10.2007, 18:55 |
| Тогда как через хук? А то с DLL еще не работал |
| Автор: Alexeis 22.10.2007, 19:12 |
| Тут полно примеров. Воспользуйтесь поиском по форуму |
| Автор: Vovanchik 29.10.2007, 14:40 |
| Здравствуйте, у меня проблема. Мне нужно чтобы моя программа могла эмитировать нажатие на клавиатуру. Неплохо работает компонент SendKeys , но некоторые приложение зарание зная о таком компоненте или методе эмуляции нажатия не позволяют отправлять текст сообщение в ихнее окно. Вопрос в том как можно с эмитировать нажатие на клаву на более низком уровне. Может каким то макаром можно отправлять коды клавиш непосредственно в порт клавы, желательно с возможность отправки в неактивное окно. За понятный пример или конкретный код готов символически от благодарить. Ещё раз напомню что sendkeys компонент не годится. Точнее сказать sendkeys не работает в игре lineage2 interlude. Хотелось бы видеть реализацию dll или пример который бы заставил клавиатуру нажимать на клавиши. |
| Автор: Alix 29.10.2007, 22:28 |
| честно не знаю, что за sendkeys, но в игре он не сработал, наверное, потому, что игра не сообщения ловит, а работает с клавой через DirectX, точнее DInput. SendInput не пробовал? Или, быть может, придется заюзать DInput, если мне не изменяет память, там можно было изменять содержимое буфера клавиатуры. |
| Автор: Mind_master 3.11.2007, 15:02 | ||
Vovanchik,
это нажимает и отпускает 'K' программно |