Re: Нажатие и удержание нескольких клавиш
От: Jakop Россия https://wmspanel.com
Дата: 16.01.04 07:33
Оценка:
Здравствуйте, muller, Вы писали:

M>Мне необходимо осуществить одновременное нажатие нескольких клавиш в окне другого процесса. Например, A+X или Alt+J и так далее. Трудность состоит в реализации параллельности нажатия клавиш, т.к. обработка GetMessaage b PeekMessage идет последовательно. Вот.

M>Буду признателен за подсказки...


Для начала нужно разобраться с относительностью одновременности....
Если создать простенькое оконное приложение Win32 и натравить на него Spy
можно ставить очень интересные опыты....
Например нажав и удерживая A & X(в нашем окне) мы получаем примерно следующее

WM_KEYDOWN A
WM_CHAR A
WM_KEYDOWN S
WM_CHAR S
WM_KEYDOWN S
WM_CHAR S
WM_KEYDOWN S
WM_CHAR S
WM_KEYDOWN S
WM_CHAR S
WM_KEYUP S
WM_KEYUP A

Простите что не перечислил все параметры (spy их копировать не дает)
Это к разговору об одновременности — одновременно ничего не происходит..


Если окно приложения определяет "одновременно" нажатые клавиши проверяя WM_KEYDOWN
и WM_KEYUP (так делается во всех играх:1)создается массив на WM_KEYDOWN срабатывает
key[wParam]=true а на WM_KEYUP key[wParam]=false 2)Все значения в key равные true —
это нажатые клавиши.....

Если твое окно проверяет это так, то CTRL+С будет выглядеть так
PostMessage(Windows,WM_KEYDOWN,0x11,0x1D0001);
PostMessage(Windows,WM_KEYDOWN,0x43,0x2E0001);
PostMessage(Windows,WM_KEYUP,0x43,0xC02E0001);
PostMessage(Windows,WM_KEYUP,0x11,0xC01D0001);













В некоторых программах(игровых в основном) одновре
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming

https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.