如何测试该代理程序是否在Debug中运行?

时间:2015-05-14 08:24:58

标签: lotus-domino lotusscript

有没有办法知道代理程序在调试模式下运行(工具/调试LotusScript是否已被激活)?

我在NotesAgent类中找不到任何东西,比如RunOnServer但是RunInDebugger。

我需要这样做以避免使用位于NNOTESWS.DLL中的进度条功能,它会弹出调试器并禁止任何点击(进入或观察变量)。顺便说一句,如果它发生在某人身上,你仍然可以按F8 / F5,这至少不会杀死Notes。

1 个答案:

答案 0 :(得分:2)

在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毫秒,你必须以每秒滴答数来获得该值),但代码仍然有效,并且完全符合您的要求。