Есть очень хороший пример для этого в OpenNTF. Вы можете найти его here.
И на самом деле это для индикатора выполнения, поэтому вы можете использовать весь класс оттуда.
Трюк: вы добавляете функцию с инструкцией stop. Вы измеряете время до постановки остановки и после. Если пройденное время превышает 100 мс, пользователь должен был нажать «продолжить», чего ему никогда не удавалось сделать за такое небольшое количество времени. Если отладчик не включен, то остановка игнорируется - без задержек ...
Вот функция, используемая в связанном OpenNTF статье:
Public Function IsDebugMode() As Boolean
Dim start As Variant
start = Getthreadinfo(6) ' LSI_THREAD_TICKS
Stop
If Getthreadinfo(6) - start > 100 Then IsDebugMode = True
' If you debug the application you will not be able to press the CONTINUE-Buton
' within less then 100 milliseconds, otherwise the STOP-statement is not in function
' and you will always be quicker then 100 milliseconds
End Function
Хотя комментарий является на самом деле неправильным (100 тиков не 100 мс, вам нужно будет делиться тиками в секунду, чтобы получить это значение), код все еще работает и делает именно то, что вы хотите.
Он отвечает на мою проблему (даже если я получаю одну нежелательную остановку) это доступное решение, я, вероятно, буду использовать timer() вместо Getthreadinfo. Благодаря! –