Question

Je l'impression d'un document en créant un objet System.Diagnostics.Process, puis définir le verbe StartInfo à « imprimer », puis en appelant la méthode Start() de processus.

Je veux que ce processus d'impression à cacher, donc je suis mise CreateNoWindow = true et WindowStyle = ProcessWindowStyle.Hidden. Mais l'application (Word ou Acrobat) apparaît encore lors de l'impression.

Je sais que les paramètres de processus cachés sont ignorés si un nom d'utilisateur ou mot de passe est défini pour le processus et j'ai débogués à travers et verifyied ils sont vides. J'ai même essayé de les mettre explicitement à NULL en vain.

Je me demande si l'action de l'impression fait la demande comme se comportent si elle nécessite une intervention de l'utilisateur (Word affiche une boîte de dialogue « document d'impression .. ») qui annule les paramètres pour le cacher.

J'utilise .Net 2.0, C #, Word 2007 et Windows Vista.

Mon code actuel est le suivant:

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();

L'aide est vraiment apprécié ...

Notez que je suis conscient que je peux utiliser l'API Word ou Acrobat pour achive la même chose, mais cette question est précisément sur la visibilité du processus shell.

Était-ce utile?

La solution

Le StartInfo.WindowStyle est transmis à l'application et l'application peut faire ce qu'elle veut avec elle (il peut l'utiliser ou de l'ignorer).

Je ne suis pas sûr, mais je pense que CreateNoWindow applique uniquement aux applications de console.

Une fois un processus est démarré, vous avez aucun contrôle sur elle et ce processus peut montrer ce que l'interface utilisateur qu'il veut, vous êtes le meilleur pari est d'utiliser l'option de programme spécifique (pour l'automatisation de l'utilisation de bureau comme Dave a suggéré, je ne sais pas sur Acrobat).

Autres conseils

Si vous voulez imprimer un document Word sans mot apparaît en fait dans une fenêtre, vous souhaitez utiliser à la place Office Automation. Microsoft fait des ensembles d'automatisation de bureau disponibles (je pense qu'ils sont installés avec Office par défaut.) ici est un article sur la façon de le faire. Je ne l'ai pas vraiment essayé le code, mais je l'ai fait une automatisation et il semble bon d'une lecture rapide.

est un article de Microsoft sur Office Automation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top