Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > отслеживание нажатия клавишь


Автор: NeoRus 26.12.2007, 10:40
Использовал код, который в факе, а в играх он не работает.Есть другой код, который работать в играх будет?

Автор: 20071231 8.1.2008, 14:51
чтобы отслеживать нажатия клавиш при активном окне, на форме свойство KeyPreview=true

Код

'событие нажатия клавиши:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

End Sub 

'событие отпускания клавиши:
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)

End Sub

'где KeyCode код нажатой клавиши



Чтобы отслеживать нажатия клавиш при неактивном окне:

Код

Private Declare Function Getasynckeystate Lib "user32" Alias "GetAsyncKeyState" (ByVal VKEY As Long) As Integer
Private Const VK_CAPITAL = &H1
Dim Nn As Integer

keystate = Getasynckeystate(32)
If (keystate And &H1) = &H1 Then  Nn = 32'была нажата клавиша пробел 
'итд






Автор: NeoRus 8.1.2008, 15:23
20071231, 
я всё это знаю, только тот второй код в играх не работает, а в прогах всё норм.

Автор: Akina 8.1.2008, 18:31
Цитата(NeoRus @  8.1.2008,  16:23 Найти цитируемый пост)
второй код в играх не работает

Правильно. Игры, для отключения иентерференции, очищают очередь событий от события нажатия клавиши (за исключением системных комбинаций). Ничего ты тут не сделаешь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)