Está agregando descripciones del problema en los comentarios a medida que avanza que le habría sido útil conocer desde el principio. La razón por la que puede ver que el proceso ha comenzado, pero no se abre ninguna ventana, se debe a los cambios en el modelo de seguridad que se realizaron a los Servicios de Windows en Windows Vista y posteriores. Aún no lo has mencionado específicamente, pero tengo una fuerte sospecha de que estás tratando de ejecutar esto en uno de esos sistemas operativos. El verdadero problema no es comenzar un proceso, sino mostrar una IU.
Lo que estamos tratando de lograr que se llama un "Interactive Service", que es uno que se le permite interactuar directamente con el usuario y el escritorio (es decir, mostrar una ventana o cuadro de diálogo).
Si está usando Windows XP (y su servicio solo tendrá tiene que ejecutarse bajo Windows XP), puede seguir las instrucciones en ese artículo para permitir que su servicio se ejecute en modo interactivo, lo que le permitirá visualizar la ventana de la aplicación Adobe Acrobat como espera. Sin embargo, como que la documentación también indica, esta característica no funciona bajo Windows Vista y más tarde:
importantes Los servicios no pueden interactuar directamente con un usuario como de Windows Vista. Por lo tanto, las técnicas mencionadas en la sección titulada Usar un servicio interactivo no se deben utilizar en el nuevo código.
Más específicamente, en esas versiones, se realizaron cambios en cómo se ejecutan los servicios y las aplicaciones. Los servicios ahora están aislados por el sistema en la Sesión 0, mientras que las aplicaciones se ejecutan en otras sesiones. Esto tiene como objetivo aislar los servicios de los ataques que se originan en el código de la aplicación. Por lo tanto, ninguna UI mostrada por un servicio será visible para ningún usuario en el sistema, incluido un simple cuadro de mensaje. Puede leer el libro blanco que explica estos cambios en más detalle here. Si usted es una persona más visual, consulte el siguiente diagrama que ilustra el nuevo modelo, prestando especial atención a las líneas divisorias:
El resultado es que si usted está apuntando a los versiones, o podría necesitar enfocarse en esas versiones, no puede usar esta laguna. Digo "escapatoria" porque la línea de fondo, como mencioné en un comentario, es que los Servicios de Windows no están destinados a ser interactivos. Lo que intenta hacer aquí va en contra del propósito y el diseño de un servicio. No fue recomendado antes, y ahora no funciona en absoluto. Si necesita esta funcionalidad en particular, debe crear un tipo diferente de aplicación. Tanto Windows Forms como WPF están destinados a aplicaciones en modo usuario, y ambos pueden iniciar procesos y abrir ventanas nuevas según sea necesario. Recomiendo encarecidamente que se convierta en este estilo de aplicación en su lugar.
¿O se crea y luego sale inmediatamente? Si puede pegar el código aquí, sería útil –
** Los Servicios de Windows no están diseñados para ejecutar aplicaciones interactivas. ** Usted * puede * ejecutar un proceso, pero abrir una nueva ventana es una propuesta arriesgada. Sin mencionar todos los problemas de seguridad con los que se encontrará al tratar de hacer esto. Lo más probable es que necesite reconsiderar su diseño y usar algo que no sea un servicio de Windows, * especialmente * si sus usuarios objetivo ejecutan Windows Vista o más adelante teniendo en cuenta su modelo de seguridad más estricto para los servicios. –
Además, vea posible duplicado aquí: http://stackoverflow.com/questions/677874/starting-a-process-with-credentials-from-a-windows-service (explicando cómo puede elevar el servicio para que se ejecute con diferentes credenciales) y/o en modo interactivo (nota: esto es [no compatible] (http://www.microsoft.com/whdc/system/sysinternals/Session0Changes.mspx) en Vista o posterior)). –