>>I was thinking about wexists("debugger")
>>
>>I'll try your solution instead.
>
>I am not sure which is best.
This method involves code in each timer, which is not always under our control - for instance, some of Carlos's classes, or Aleksej Grigorjev... no source code, lots of protected PEMs. So I tried a different approach: go through _screen.forms, and for each I recurse (using my recurse.prg - it's here in downloads) through all of its objects, and if it's baseclass is timer, I disable it (again, doesn't always work with some of those).
Reading this I got a better idea - if I'd want to restore them when I finish debugging, I wouldn't know which ones were active. So perhaps a better idea would be to set their intervals to some insanely large value, perhaps a megasecond up, and then when restoring just remove that megasecond... like this
timer.interval = timer.interval + 1000000 && disable
timer.interval = timer.interval % 1000000 && enable
Of course, if the timer's code adjusts this.interval and that code somehow runs after this, well, see with the person who wrote it :).