Снимок экрана процесса под Windows Service

Мы должны запустить процесс из службы Windows и получить от него скриншот.

Мы пробовали вызовы BitBlt и PrintWindow Win32, но оба дают пустые (черные) растровые изображения.

Если мы запускаем наш код из обычного пользовательского процесса, он работает просто отлично.

Это то, что даже возможно? Или может быть другой способ попробовать?

Вещи, которые мы попробовали:

Служба Windows работает как локальная система, процесс запускается как локальная система -> сбой скриншотаСлужба Windows, работающая от имени администратора, запускает процесс от имени администратора -> скриншот не получается.Приложение Windows, работающее от имени пользователя XYZ, запускает процесс как XYZ -> Скриншот работает как с BitBlt, так и с PrintWindow.Пробная проверкаРазрешить сервису взаимодействовать с рабочим столом " из локальной системы

Мы также заметили, что PrintWindow лучше работает в нашем случае, если оно находится за другим окном.

Для других требований родительский и дочерний процессы должны находиться под одним и тем же пользователем. Мы можем'реально использовать олицетворение от одного процесса к другому.

Ответы на вопрос(4)

Ваш ответ на вопрос