One solution that one could suggest is to periodically look for a special \'Screen-saver\' desktop, and if it\'s present then count it as a running screensaver.
But
HOW TO: Determine If Screen Saver Is Running by Using Visual Basic 6.0
I know this is for VB6, but it's bound to be a good place to start.