![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
В одной гаме надо часто нажимать пробел (раза 3-4 в секунду), меня это задолбало.
Поэтому я хотел написать прогу, имитурующую нажатие пробела. Вот процедура таймера: hnd := GetForegroundWindow; PostMessage (hnd, WM_KEYDOWN, 32, $390001); PostMessage (hnd, WM_KEYUP, 32, $C0390001); И ничего не делается. WM_CHAR генерится автоматически. В чем дело ? Еще чето надо делать ? -------------------- С уважением, г-н Посол. |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 14 Всего: 48 |
игра наверно ипользует GetAsyncKeyState или GetKeyboardState или что-то подобное, попробуй SetKeyboardState или keybd_event, т.к. сообщения не устанавливают состояния клавиш...
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Да вообще, даже не игра, вообще ничо на это не реагирует. Даже Дельфи, и сама прога тоже....
Сообщения приходят, я смотрел, но почему-то ничего не происходит. Я вытащил на форму TEdit, туда поставил курсор - и нифига... -------------------- С уважением, г-н Посол. |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 14 Всего: 48 |
может sndkey32.pas тебе поможет..., на компакте с дельфями поищи в папке Extras кажется
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
cully, спасибо за подсказку с sndkey32!
Я понял свою ошибку. sndkey32 работает через keybd_event, а не через сообщения. А keybd_event посылает WM_KEYDOWN и WM_KEYUP текущему элементу активного окна, имеющему фокус (по-моему, узнать хендл этого окна сложно). А я посылал сообщения окну GetForegroundWindow - эта функция возвращает хэндл просто активного окна (формы), а не его дочернего окна, имеющего фокус. Сейчас всё работает с помощью sndkey32.pas, но только не в той гаме... -------------------- С уважением, г-н Посол. |
|||
|
||||
| Гость_cully |
|
|||
|
Unregistered |
в sndkey32 есть еще AppActivate. Перед тем как посылать нажатия надо сделать AppActivate('Заголовок нужного окна');
|
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Попробуй так (По крайней мере у меня сработало)
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Ну сейчас в обычных приложениях работает и с помощью SendKeys и с помощью PostMessage.
Только вот в гаме-то не работает, видимо как сказал cully там работают через GetAsyncKeyState. Так наверное уже не обмануть гаму... -------------------- С уважением, г-н Посол. |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 14 Всего: 48 |
p0s0l может кинишь гаму, я пороюсь может что-нить нарою... или она здоровая больно?
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
cully - я тебе закинул, правда не знаю, получишь ли ты - у меня тут чо-то с мылом...
Еще: в той гаме можно и мышью стрелять, тоже пробовал с помощью PostMessage вроде WM_LMOUSEBUTTON - только никакой реакции. Если с клавой облом может быть из-за юзанья GetAsyncKeyState, то из-за чего может быть облом с мышью ? -------------------- С уважением, г-н Посол. |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 14 Всего: 48 |
p0s0l, игра Direct Input использует, а он вроде почти на прямую общается с клавой и мышой, короче надо думать...
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 14 Всего: 48 |
з.ы. p0s0l, ты не в курсе зачем это игра сокеты юсает? троян там походу какой-то или она в инет куда-то лазит.
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
сокеты - свои результаты можно кидать в инет.
DirectInput - значит облом, хотя игра то примитивнейшая... ладно уж, буду палец тренировать... Спасиб за советы! Это сообщение отредактировал(а) p0s0l - 29.7.2003, 17:22 -------------------- С уважением, г-н Посол. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |