![]() |
| | |||||||
| Регистрация | Правила | Блоги | Пользователи | Социальные группы | Поиск | Сообщения за день | Все разделы прочитаны |
| |
![]() |
| |
| | #1 | ||||||
| idealser Новичок Регистрация: 28.04.2010 Адрес: Кишинев, Молдова
Сообщений: 35 Репутация: 4 (4) |
Доброе время суток! Мне необходимо послать нажатия клавиш в игру, непосредственно, основному окну. Хендл окна есть, сообщения отправляю через PostMessage. keybd_event не подходит, так как мне необходимо послать нажатия в неактивное окно. Через Spy++ я просмотрел получаемые сообщения окном и взял оттуда параметры wParam и lParam. Таким образом, нажатие клавиши "1" у меня осуществляется так:
Ну и при "натуральном" нажатии клавиш сообщения выстраиваются в таком порядке: WM_KEYDOWN, WM_CHAR, WM_KEYUP Мой был таков: WM_KEYDOWN, WM_KEYUP, WM_CHAR, WM_CHAR Заранее благодарю. | ||||||
| | |||||||
| Другие темы раздела | |
| Что можна использовать вместо модуля CRT(Паскаль) в консоле Delphi С такой проблемой столкнулся вчера:"Смотрел работу с цветом в паскаль решил попробовать сделать что то подобное в консоле Delphi но тут вспомнил что в Delphi нет модуля CRT." Чем возможно заменить этот модуль в Delphi - если это возможно?. Что можна использовать вместо модуля CRT(Паскаль) в консоле Delphi | Информационно- поисковая система. Delphi Добрый день программисты! Задача такова: надо написать на Delphi программу- "информационно- поисковая система внутренней документации учреждения", конечно же не бесплатно :) --- Mawrat: Руслан19, опубликуй, свое сообщение также здесь: Фриланс: заказ программ, скриптов, сайтов.. Информационно- поисковая система. |
| | #2 | ||||||
| CodeMonkey Форумчанин Регистрация: 21.01.2011 Адрес: Россия, Тверь
Сообщений: 151 Репутация: 45 (45) |
| ||||||
| | |||||||
| | #3 | |
| idealser Новичок Регистрация: 28.04.2010 Адрес: Кишинев, Молдова
Сообщений: 35 Репутация: 4 (4) |
Спасибо, ошибка исчезла, в Spy все точно также, как и при обычном нажатии, но... Никакого эффекта, я уже и не знаю как реализовать это нажатие клавиши
| |
| | ||
| | #4 | |
| CodeMonkey Форумчанин Регистрация: 21.01.2011 Адрес: Россия, Тверь
Сообщений: 151 Репутация: 45 (45) | http://www.transl-gunsmoker.ru/2010/06/postmessage.html Добавлено через 1 минуту P.S. Есть подозрение, что игра может читать ввод через DirectInput. Есть сомнения, что даже SendInput поможет с этим. | |
| | ||
| | #5 | |
| idealser Новичок Регистрация: 28.04.2010 Адрес: Кишинев, Молдова
Сообщений: 35 Репутация: 4 (4) |
Загвоздка в том, что игра читает такие клавиши, как: Enter, F1, F2, F3, Backspace... Причем принимает она их лишь отсылкой сообщения WM_CHAR. И плюс, есть программы, которые эмулируют нажатия именно в этой игре, так что это возможно. Сейчас почитаю про SendInput, попробую что-нибудь. Добавлено через 27 минут А разве SendInput работает с неактивными окнами? Мне нужно послать событие именно туда | |
| | ||
| | #6 | |
| anonimus Форумчанин Регистрация: 28.04.2010
Сообщений: 4,277 Репутация: 2018 (1130) | idealser, дай ссылочку на Spy++
| |
| | ||
| | #7 | |||||||
| idealser Новичок Регистрация: 28.04.2010 Адрес: Кишинев, Молдова
Сообщений: 35 Репутация: 4 (4) |
[Запрещённое содержимое - удалено.]
Последний раз редактировалось Mawrat; 05.02.2011 в 01:28. | |||||||
| | ||||||||
| | #8 | ||||||
| idealser Новичок Регистрация: 28.04.2010 Адрес: Кишинев, Молдова
Сообщений: 35 Репутация: 4 (4) |
Подсказали использовать оконные процедуры
2. Во втором случае я получаю адрес процедуры класса, но SPY++ показал, что он отличен от оконного адреса процедуры. Наверное поэтому и игнорируются сообщения, они даже не доходят до окна. У кого-нибудь есть предположения, как можно получить адрес оконной процедуры? Добавлено через 1 час 21 минуту Иногда, при использовании второго метода вылезает ошибка Privileged Instruction при вызове CallWindowProc. | ||||||
| | |||||||
| После регистрации реклама в сообщениях будет скрыта | |
| | #9 | |
| Uzur123 Новичок Регистрация: 03.02.2012 Адрес: Хабаровск
Сообщений: 11 Репутация: 0 (0) |
На сколько я понял, требуется отправить сочетание клавиш неактивному окну, при том что отправка нажатий одиночных кливиш срабатывает. А вы не пробывали отправлять команды сделующим образом ? отправка нажатия кнопки 1 задержка 200 миллисекунд отправка нажатия кнопки 2 задержка 200 миллисекунд отправка отжатия кнопки 2 задержка 200 миллисекунд отправка отжатия кнопки 1 Так как я вижу что автор в первом примере пробует сделать так: отправка нажатия кнопок 1 2 отжатие кнопок 1 2 (ни задержек ни порядка свёрнутое приложение может просто не распознать) извиняюсь что не предоставляю программного кода, так как не знаком с синтаксисом этих команд, да и проверить в данный момент негде. | |
| | ||
![]() |
| Похожие темы | |
| Тема | Автор |
| .NET Windows Forms Имитация нажатий клавиш клавиатуры Доброго времени суток господа программисты ! Вопрос вот в чём ! Как можно из программы с имитировать нажатие клавиши клавиатуры ! Если например повесить hook на клавиатуру таким образом : private void pictureBox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) { ... | free6878 |
| C# .NET Эмулирование нажатий клавиш Добрый вечер! Есть задача - сэмулировать нажатие определенной клавиши. Короче, есть игра, где по нажатию на клавишу "+" на панели с цыфрами (что справа) происходит определенное действие, тоже самое и с клавишой "-", причем изменить из никак нельзя, нажатие на основной клавиатуре (сверху букв з, х,... | shalad |
| C# .NET .NET 3.x Перехват нажатий клавиш Добрый вечер! Подскажите пожалуйста, как в консольном приложении перехватить нажатие клавиш на клавиатуре. Добавлено через 22 минуты Т.е. чтобы не было, собственно, ввода в консоль, а был перехват... если это вообще реально сделать | Freelancer_Alex |
| Visual C++ Перехват нажатий клавиш Уже всё перерыл, чтобы найти что-то подобное! Если нахожу пример - он либо не компилируется, либо сделан на другом языке! Попробую разъяснить, что я хочу: Мне нужно сделать программу, которая сидя в трее перехватывала нажатия клавиш и выдавала простое сообщение с кодом (или символом) нажатой... | FiX |
| C++ Builder Эмулирование нажатий клавиш Вводная: С++ builder 6. Программа А та что пишу я. Программа Б не моя. Вопросы: 1)Как из неактивного окна программы А отправить нажатие клавиши в неактивное окно программы Б. 2)Как из активного окна программы Б отправить нажатие клавиши в неактивное окно программы А. | Lurker |
| Опции темы | |
| |
| |