¿Cómo se puede automatizar la Word 2013 a partir de un programa C # INTERPOP / COM usando programador de tareas con un usuario conectado y el escritorio bloqueado?

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

Pregunta

He heredado un programa C # que se utilizó para automatizar la creación de un informe diario en Windows XP Pro SP3 utilizando PDFCreator 1.2.3, MapInfo Professional 11, Word 2003 y Excel 2003. Esta máquina WIN XP estaba en un Active Directory El dominio y el programa C # corrieron como usuario de dominio (con permisos administrativos) con el usuario conectado y el escritorio bloqueado. Word 2003 fue automatizado para abrir una plantilla, crear un documento de la plantilla y guardar el documento, todo desde / en un recurso compartido de red. Se utilizó Excel 2003 para abrir una hoja de cálculo con una tabla vinculada a un DataSource ODBC y actualizar la mesa, tirando de los nuevos datos en la hoja de cálculo. MapInfo se utilizó para generar imágenes de mapas desde un DataSource ODBC. PDFCreator se usó para tomar la hoja de cálculo, el documento de Word e imágenes y las colocó a todos en un informe diario.

Como XP ha alcanzado su final de la vida, he movido este programa a una máquina virtual de Win 8.1 eE (en el mismo dominio) y hemos instalado Office 365 productos (Word 2013 y Excel 2013) junto con PDFCreator 1.7.1 y MapInfo Professional 12 para usar en la automatización de la creación de este informe diario. Este programa funciona normalmente cuando se ejecuta manualmente en la nueva VM, pero falla cuando se ejecuta como el mismo usuario que una tarea programada. Esta tarea programada se establece para ejecutarse con los permisos más altos y ejecutarse si el usuario no ha iniciado sesión.

Me doy cuenta de que hay muchas variables en juego aquí; El O / S tuvo que cambiar y no usamos la versión antigua de Office, también no pude obtener versiones anteriores de PDFCreator o MapInfo. Por lo tanto, enfocaré la pregunta sobre las cosas que puedo controlar. Soy consciente de los problemas me enfrento a hacer esto, pero no estoy claro si eslo o no. En realidad, es posible que ahora le dan los nuevos O / S y las aplicaciones (a saber, Word 2013 y Excel 2013) que me han pedido que intente que funcione con él.

Entonces, la pregunta es: ¿cómo se puede automatizar la palabra 2013 de un programa C # INTERPOP / COM usando el Programador de tareas para ejecutar el programa con un usuario conectado y el escritorio bloqueado?

¿Fue útil?

Solución 2

La respuesta, he encontrado, es que una tarea como esta cuando se ejecuta en Windows XP Pro SP3 con las opciones seleccionadas para ejecutarse como administrador y para ejecutar si se inicia sesión o no se podía usar con el mismoTarea / Usuario / Permisos en Windows 8.1 EE.

La tarea corrió correctamente con las opciones para ejecutarse como administrador y ejecutar si no se ha iniciado sesión,

Para cualquier otra persona que migra programas / tareas heredados de Win XP, ya que se quebrantan debido al final de la vida útil, es posible que desee intentar eliminar la ejecución de administrador y ejecutar si no ha iniciado sesión en las opciones en la tarea en la nueva versión deProgramador de tareas de Windows.

Otros consejos

de Microsoft Docs - Consideraciones para la automatización del lado del servidor de la oficina :

Todas las versiones actuales de Microsoft Office fueron diseñadas, probadas y configurado para ejecutarse como productos de usuario final en una estación de trabajo cliente. Ellos Supongamos un escritorio interactivo y un perfil de usuario. No proporcionan el nivel de reentrancia o seguridad que es necesario para cumplir con el Necesidades de los componentes del lado del servidor que están diseñados para funcionar sin supervisión.

Microsoft no se recomienda actualmente, y no es compatible, Automatización de las aplicaciones de Microsoft Office de cualquier desatendido, Aplicación o componente del cliente no interactivo (incluyendo ASP, ASP.NET, DCOM y servicios de NT), porque la oficina puede exhibir inestable comportamiento y / o punto muerto cuando la oficina se ejecuta en este entorno.

Sé que no responde la pregunta sobre la oficina 365, pero creo que esto es lo más cerca que vas a obtener. También encontré este artículo: howto: configure las aplicaciones de oficina para ejecutarse en la cuenta de usuario interactiva .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top