Pregunta

Estoy imprimir un documento mediante la creación de un objeto System.Diagnostics.Process, y luego poner el verbo StartInfo para "imprimir", a continuación, llamar al método de proceso Start().

Quiero que este proceso de impresión que se oculta, por lo que estoy estableciendo CreateNoWindow = true y WindowStyle = ProcessWindowStyle.Hidden. Pero la aplicación (Word o Acrobat) sigue apareciendo durante la impresión.

Sé que la configuración del proceso ocultos se ignoran si un nombre de usuario o contraseña definida para el proceso y he depurado a través y verifyied están vacíos. Incluso he intentado fijar explícitamente a NULL en vano.

Me pregunto si la acción de impresión hace que la aplicación se comporte como si se requiere la intervención del usuario (Word muestra un "documento de impresión .." cuadro de diálogo) que anula la configuración de ocultarlo.

Estoy usando .Net 2.0, C #, Word 2007 y Windows Vista.

Mi código actual es la siguiente:

System.Diagnostics.Process shellProcess = new System.Diagnostics.Process();
shellProcess.StartInfo.FileName = fullFileName;                   
shellProcess.StartInfo.CreateNoWindow = true;
shellProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
shellProcess.StartInfo.Verb = "print";
shellProcess.Start();

Ayuda es muy apreciada ...

Tenga en cuenta que yo soy consciente de que puedo utilizar la API de Word o Acrobat para achive lo mismo, pero esta pregunta es específicamente sobre la visibilidad del proceso de shell.

¿Fue útil?

Solución

El StartInfo.WindowStyle se pasa a la aplicación y la aplicación puede hacer lo que quiera con ella (se puede utilizar o ignorarla).

Y no estoy seguro pero creo que CreateNoWindow sólo se aplica a aplicaciones de consola.

Una vez que se inicia un proceso que no tiene control sobre él y ese proceso puede mostrar la interfaz de usuario lo que quiere, eres la mejor opción es utilizar la opción específica del programa (para uso de la Oficina de automatización como Dave sugirió, no sé acerca de Acrobat).

Otros consejos

Si desea imprimir un documento de Word Palabra sin realidad que aparece en una ventana, tendrá que utilizar automatización de oficina en su lugar. Microsoft hace montajes de automatización de oficina (creo que se instalan con Office de forma predeterminada.) Aquí es un artículo sobre cómo hacerlo. En realidad no he probado el código, sino que he hecho un poco de automatización y se ve bien a partir de una lectura rápida.

Aquí es un artículo de Microsoft en Office Automation.

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