Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.09.2012, 14:34   #1
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию Эмулирование одновременного нажатия четырех клавиш

Добрый день. Приятель-геймер попросил сделать программу, которая эмулирует нажатие 4х клавиш т.к. в его клавиатуре, как и в большинстве, поддерживается только три. Я попробовал сделать программку, но клавиши нажимаются по очереди и приложение в котором была нажата сигнальная клавиша повисает пока не переберутся 4кнопки. (т.е. нажав одну клавишу, должно эмулироватся 4). Исходный код прост.
Код:
include '%fasminc%/win32ax.inc'
.data
key         db  026h
.code
start:

lp:         invoke  GetAsyncKeyState,4Ah
            cmp     eax,0
            jz      lp
            invoke  keybd_event,4Fh,100h,0,0
            invoke  keybd_event,50h,100h,0,0
            invoke  keybd_event,4Bh,100h,0,0
            invoke  keybd_event,4Ch,100h,0,0
            jmp     lp

            invoke  ExitProcess,0

.end start
По нажатию клавиши J должны сработать 4 кнопки, только это происходит по очереди и с зависанием. Функция по описанию должна "нажать" и "не отпускать кнопку". В общем каким образом можно решить эту задачу?
Заранее спасибо.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 04.09.2012, 16:56   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что все четыре кнопки одновременно нажать???
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.09.2012, 19:06   #3
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
Что все четыре кнопки одновременно нажать???
Да. Все верно.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 04.09.2012, 22:10   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Мне почему-то кажется что это не возможно...
А если речь идет о CTRL-Shift-ALT то ИМХО для их эмулирования нужно посылать сообщение окну.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.09.2012, 07:31   #5
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
Мне почему-то кажется что это не возможно...
Ну есть же какие-то игровые клавиатуры, способные до семи одновременных нажатий.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 05.09.2012, 07:43   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Но они скорее всего работают по другому
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.09.2012, 13:44   #7
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
Но они скорее всего работают по другому
Через свой драйвер?

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 05.09.2012, 14:55   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Через свой драйвер?
Неа. Через систему. Но уже не система регулирует максимум одновременных нажатий, а сама игра.
Человек_Борща вне форума Ответить с цитированием
Старый 05.09.2012, 19:51   #9
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
а сама игра
т.е. эмулировать вообще никак не получится?

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 05.09.2012, 21:19   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Честно - я бы на это не надеялся.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имитация нажатия клавиш Miha85193 Общие вопросы Delphi 41 22.05.2012 02:58
Эмулирование нажатия клавиш в WebBrowser kettanaito Компоненты Delphi 8 30.08.2011 14:27
нажатия клавиш на клавиатуре include Общие вопросы Delphi 4 24.06.2009 16:26
Проблема одновременного нажатия клавиш, Pascal kupik Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 26.05.2009 17:11
Перехват нажатия клавиш. Vi_russ Общие вопросы Delphi 1 02.12.2008 20:25