| |
|
|
| | исходные данные :
по нажатию кнопки на форме обработчик запускает функцию вывода документа в 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
|
По табу отрабатывает, по пробелу дуркует.
Короче, кислая тема. | |
| |
| |