Captura de tela do processo no Windows Service

Temos que executar um processo a partir de um serviço do Windows e obter uma captura de tela dele.

Tentamos as chamadas BitBlt e PrintWindow Win32, mas ambas fornecem bitmaps em branco (preto).

Se rodarmos nosso código a partir de um processo de usuário normal, ele funcionará bem.

Isso é algo que é possível? Ou poderia haver outro método para tentar?

Coisas que tentamos:

Serviço do Windows em execução como Sistema Local, executa o processo como Sistema Local -> captura de tela falhaServiço do Windows em execução como Administrador, executa o processo como Administrador -> captura de tela falha.Aplicativo do Windows em execução como usuário XYZ, executa um processo como XYZ -> captura de tela funciona com BitBlt ou PrintWindow.Tentei verificar "Permitir que o serviço interaja com a área de trabalho" do sistema local

Nós também notamos que o PrintWindow funciona melhor para o nosso caso, ele funciona se a janela estiver atrás de outra janela.

Para outros requisitos, os processos pai e filho devem estar sob o mesmo usuário. Não podemos usar a representação de um processo para outro.

questionAnswers(4)

yourAnswerToTheQuestion