|
|
|
| исходные данные :
по нажатию кнопки на форме обработчик запускает функцию вывода документа в word
продолжительность работы функции - около минуты
выход - по нажатию 'TAB'
вроде ничего особенного, однако
проблема:
при нажатии 'SPACE' текущие операции приостанавливаются, обработчик кнопки стартует заново, запускает новый документ word, завершает его, после чего продолжается работа с прерванным документом. Рекурсия, короче получается. Причем, ск раз задавишь пробел, столько и выполнит.
Обработчик я блокировал так
If GetAsyncKeyState(VK_SPACE) = 0 Then
Else
Exit Sub
End If
|
Хотелось бы разобраться, может кто встречал. | |
|
| |
|
39 Кб. |
|
| У мну работает корректно при нажатии пробела | |
|
| |
|
|
|
| Зачем столько лишних референсов, что-бы мы отключали слетевшие?
+ Если в процессе заполнения ткнуться в Word мышкой генерится ошибка
а песочные часики остаются. | |
|
| |
|
|
|
| вставил твою форму в проект - работает нормально
моя ж подпрыгивает на пробел
листинг надо с лупой смотреть | |
|
| |
|
|
|
| Глючит после применения API
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Const VK_TAB = &H9 ' Константа для TAB key.
...
Do...
...
If GetAsyncKeyState(VK_TAB) = 0 Then
Else
If MsgBox("Прервать печать?", vbOKCancel, strMsgTitle) = vbOK Then Exit Do
End If
Loop
|
По табу отрабатывает, по пробелу дуркует.
Короче, кислая тема. | |
|
| |