Это можно сделать с помощью API службы терминалов Windows (WTS).Вот что вам нужно сделать:
1. Использовать локальную систему в качестве учетной записи системной службы.Другие учетные записи не будут работать.
2. Вызовите WTSOpenServer, затем с помощью WTSEnumerateSessions получите список сеансов
3. Вы получите список структур WTS_SESSION_INFO.Каждый элемент там представляет сессии.Вы заинтересованы только в сеансах, где State является WTSActive.
4. В цикле вызовите CreateProcessAsUser для каждого сеанса, который вы определили на предыдущем шаге.Укажите sessionId из структуры WTS_SESSION_INFO, которую вы используете для сеанса.Имя запускаемого процесса будет вашей любимой утилитой захвата экрана.Я не использовал ни одного из них, но быстрый поиск в интернете дает мало вариантов.