служба Windows предназначена для запуска также в том случае, если нет подключенных пользователей, она работает как серверный процесс, всегда включенный и прослушивающий, или включающий и выполняющий что-то, или бездействующий.
Я думаю, что вам нужноклиентское приложение, которое выполняется внутри сеанса каждого зарегистрированного пользователя и, в конечном счете, выполняет эту работу, а затем, при необходимости, связывается со службой для выполнения некоторой работы.
Я говорю здесь, что вместо запуска службы Windows вВ другом сеансе, кроме 0 , вы можете создать небольшой исполняемый файл (вероятно, без пользовательского интерфейса), который запускается из папки запуска всех пользователей при каждом входе в систему.такое приложение затем запускается внутри соответствующего сеанса и имеет доступ к нему, оно может получить снимок экрана, затем либо сохранить его где-то самостоятельно, либо вызвать некоторые конечные точки в своей службе Windows (работающей всегда в сеансе 0) и создать службу для создания снимка экранавзят из его клиентского приложения.
я бы так и сделал, не пытаясь каким-то "волшебством" сказать Vista и 7 запустить службу в сеансе пользователя, который в конце концов невошел в систему еще при запуске системы.