有没有办法知道代理程序在调试模式下运行(工具/调试LotusScript是否已被激活)?
我在NotesAgent类中找不到任何东西,比如RunOnServer但是RunInDebugger。
我需要这样做以避免使用位于NNOTESWS.DLL中的进度条功能,它会弹出调试器并禁止任何点击(进入或观察变量)。顺便说一句,如果它发生在某人身上,你仍然可以按F8 / F5,这至少不会杀死Notes。
答案 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毫秒,你必须以每秒滴答数来获得该值),但代码仍然有效,并且完全符合您的要求。