о ловле нажатой клавиши

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
klop086
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 30.01.2004 (Пт) 8:46
Откуда: Москва

о ловле нажатой клавиши

Сообщение klop086 » 02.02.2004 (Пн) 11:55

Уважаемые, как при form.visible=false поймать нажатие например ctrl+alt+c ?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 02.02.2004 (Пн) 12:00

Используй ф-цию GetAsyncKeyState:
Код: Выделить всё
Private Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Long) As Integer


Вызывай её по таймеру с кодами символов. Она возвращает при нажатой клавише <0, по-моему.

Код: Выделить всё
Private Sub Timer1_Timer()
Timer1.Interval=50
Timer1.Interval = 50
If GetAsyncKeyState(vbKeyC) < 0 And GetAsyncKeyState(18) < 0 And GetAsyncKeyState(vbKeyControl) < 0 Then MsgBox "Ctrl+Alt+C"
'18 - код клавиши Alt
End Sub

klop086
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 30.01.2004 (Пт) 8:46
Откуда: Москва

Сообщение klop086 » 02.02.2004 (Пн) 12:10

Amed
скажите, пожалуйста,
1 эта функция будет отслеживать все нажатые клавиши, даже при не активности моей программы?

2 form.visible = false - при этом условии моя форма всегда не активна?

<заранее спасибо>

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 02.02.2004 (Пн) 12:21

1. Да, абсолютно все нажатия клавиш. Если нужны нажатия клавиш только в программе, то необходимо проверять активность программы с помощью API (скажем, GetDesktopWindow).
2. Имхо если форма невидима, то она автоматически становится неактивной.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

    TopList  
cron