|
|
|
| запускаю скрипт, открываю рекордсет, проверяю наличие файла, если файла нет, запускаю цикл, снова проверяю, и так по кругу. Но скорость выполнения очень сильно зависит от производительности конкретного компьютера, и цикл крутится с разной скоростью. К тому же этот цикл сильно подгружает компьютер, и всё остальное в это время отдыхает :(
Есть возможность уже после открытия рекордсета проверять наличие файла (точнее запускать любую операцию) например 1 раз в секунду, без всяких промежуточных циклов?
И как сделать так, чтобы при нажатии на какую либо клавишу скрипт останавливался? например по Esc. | |
|
| |
|
|
|
| А если просто останавливать горячими клавишами, например Ctrl+Break? | |
|
| |
|
|
|
| http://hiprog.com/index.php?option=com_content&task=view&id=356
а проверять лучше по таймеру (в форме есть такое событие) | |
|
| |
|
|
|
| Про "ESC" отлично :-)
По таймеру из формы не годится. нужно запускать следующий этап обработки уже внутри рекордсета через определённый промежуток времени (достаточный для обработки предыдущего файла). А если по таймеру, то рекордсет будет открываться каждый раз заново. Хотя конечно если проставлять признак "обработки", то оно будет срабатывать.
Просто подумал что можно вставить в текст скрипта что-нить типа timer(2sec). Это было бы для меня идеально | |
|
| |
|
|
|
| вот это не поможет?
http://hiprog.com/index.php?option=com_content&task=view&id=251661564&Itemid=35
есть еще API
Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long | |
|
| |
|
|
|
| Еще есть:
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Но можно и средствами VBA:
sngTimer=Timer
Do While (Timer-sngTimer)<2
DoEvents
Loop | |
|
| |