Как "отсечь" повторную реакцию на GetAsyncKeyState - VB

Формулировка задачи:

У меня в проге, работающей в пассиве, есть такой досрочный выход из паузы:
Do:
Sleep 1000:
Pa = Pa - 1: If Pa = 0 Then Exit Do:
'.........................................................
If GetAsyncKeyState(VK_DELETE) Then Exit Do:
Loop:
Я жму Del, выхожу из паузы, но потом Таймер, отслеживающий нажатия клавиш, ТОЖЕ обрабатывает ЭТО нажатие Del .... Можно как-то отсечь УЖЕ обработанное в паузе нажатие (ну вроде как бы обнулить) ??

Код к задаче: «Как "отсечь" повторную реакцию на GetAsyncKeyState - VB»

textual
Private Declare Sub Sleep Lib "kernel32" (ByVal milliseconds As Long) 'вызов функции Sleep 1000 'время в миллисекундах
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer 'для отлова нажатия клавиш в другом окне
Const VK_DELETE = &H2E:
Dim Pa As Byte
Public Sub Пауза()
Picture1.CurrentX = 100: Picture1.CurrentY = 148: Picture1.ForeColor = vbBlue:
Picture1.FontSize = 24: Picture1.Print "П А У З А (Del)":
Do:
'If GetAsyncKeyState(VK_DELETE) Then Exit Do
Sleep 1000:
If GetAsyncKeyState(VK_DELETE) Then Exit Do
 
Pa = Pa - 1: If Pa = 0 Then Exit Do:
Picture1.Line (273, 150)-(323, 200), &H4000&, BF: Picture1.CurrentX = 275:
Picture1.CurrentY = 148: Picture1.Print Pa: DoEvents
'If GetAsyncKeyState(VK_DELETE) Then Exit Do
Loop: Picture1.Line (100, 150)-(333, 200), &H4000&, BF: Picture1.ForeColor = &HFFFF&: Picture1.FontSize = 12:
End Sub
 
Private Sub Command1_Click()
Timer1.Enabled = False: Pa = 10: Call Пауза: Timer1.Enabled = True:
End Sub
 
Private Sub Form_Load()
Picture1.ScaleMode = 3: Picture1.BackColor = &H4000&:
End Sub
 
Private Sub Timer1_Timer()
If GetAsyncKeyState(VK_DELETE) Then Beep:
End Sub
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

12   голосов, оценка 3.917 из 5


СДЕЛАЙТЕ РЕПОСТ
Похожие ответы
Для поиска решения или похожих решений вы можете воспользоваться "Поиском по сайту" или "Поиском по разделу"
Поиск по сайту