Como o Word 2013 pode ser automatizado a partir de um programa C# Interop/COM usando o Agendador de Tarefas com um usuário conectado e a área de trabalho bloqueada?

StackOverflow https://stackoverflow.com//questions/23061324

Pergunta

Herdei um programa C# que costumava automatizar a criação de um relatório diário no Windows XP Pro SP3 usando PDFCreator 1.2.3, MapInfo Professional 11, Word 2003 e Excel 2003.Esta máquina Win XP estava em um domínio do Active Directory e o programa C# foi executado como um usuário de domínio (com permissões administrativas) com o usuário conectado e a área de trabalho bloqueada.O Word 2003 foi automatizado para abrir um modelo, criar um documento a partir do modelo e salvar o documento – tudo de/em um compartilhamento de rede.O Excel 2003 foi utilizado para abrir uma planilha com uma tabela vinculada a uma fonte de dados ODBC e atualizar a tabela, puxando os novos dados para a planilha.MapInfo foi usado para gerar imagens de mapas a partir de uma fonte de dados ODBC.O PDFCreator foi usado para pegar a planilha, o documento do Word e as imagens e reuni-los em um relatório diário.

Como o XP atingiu o fim de sua vida útil, mudei este programa para uma máquina virtual Win 8.1 EE (no mesmo domínio) e instalei os produtos Office 365 (Word 2013 e Excel 2013) junto com PDFCreator 1.7.1 e MapInfo Professional 12 para usar na automatização da criação deste relatório diário.Este programa funciona normalmente quando executado manualmente na nova VM, mas falha quando executado pelo mesmo usuário de uma tarefa agendada.Esta tarefa agendada está configurada para ser executada com as permissões mais altas e executada se o usuário não estiver conectado.

Sei que há muitas variáveis ​​em jogo aqui;o sistema operacional teve que mudar e não usamos mais a versão antiga do Office, também não consegui versões mais antigas do PDFCreator ou MapInfo.Portanto, focarei a questão nas coisas que posso controlar.Estou ciente os problemas Enfrento fazer isso, mas não tenho certeza se isso é realmente possível ou não agora, dados os novos sistemas operacionais e aplicativos (ou seja, Word 2013 e Excel 2013) com os quais me pediram para tentar fazê-lo funcionar.

Então, a questão é:Como o Word 2013 pode ser automatizado a partir de um programa C# Interop/COM usando o Agendador de Tarefas para executar o programa com um usuário conectado e a área de trabalho bloqueada?

Foi útil?

Solução 2

A resposta, descobri, é que uma tarefa como esta, quando executada no Windows XP Pro SP3 com as opções selecionadas para executar como Administrador e para executar estando conectado ou não, não pôde ser usada com a mesma tarefa/usuário /permissões no Windows 8.1 EE.

A tarefa foi executada com sucesso com as opções para executar como Administrador e executar se não estiver conectado não sendo selecionadas.

Para qualquer outra pessoa que esteja migrando programas/tarefas legados do Win XP à medida que eles são desativados devido ao fim da vida útil, você pode tentar remover as opções executar como Administrador e executar se não estiver conectado às opções da tarefa na nova versão do Windows Task Scheduler .

Outras dicas

Do Microsoft Docs - Considerações sobre automação do Office no lado do servidor:

Todas as versões atuais do Microsoft Office foram projetadas, testadas e configuradas para executar como produtos do usuário final em uma estação de trabalho do cliente.Eles assumem um desktop interativo e perfil de usuário.Eles não fornecem o nível de reentrância ou segurança necessária para atender às necessidades dos componentes do lado do servidor projetados para executar sem assistência.

Atualmente, a Microsoft não recomenda e não suporta a automação de aplicativos do Microsoft Office de qualquer aplicativo ou componente ou componente não interativo e não interativo (incluindo serviços ASP, ASP.NET, DCOM e NT), porque o Office pode exibir comportamento instável e/////// ou impasse quando o escritório é executado nesse ambiente.

Sei que isso não responde à pergunta sobre o Office 365, mas acho que isso é o mais próximo que você pode chegar.Também encontrei este artigo: COMO:Configurar aplicativos do Office para serem executados na conta de usuário interativa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top