我正在打印文档,方法是创建一个System.Diagnostics.Process
对象,然后将StartInfo
动词设置为“print”,然后调用进程Start()
方法。
我希望隐藏此打印过程,因此我设置了CreateNoWindow = true
和WindowStyle = ProcessWindowStyle.Hidden
。但是在打印过程中仍然会出现应用程序(Word或Acrobat)。
我知道如果为进程设置了用户名或密码并且我已经调试并验证它们是空的,则会忽略隐藏的进程设置。我甚至尝试将它们明确地设置为NULL无济于事。
我想知道打印操作是否使应用程序的行为好像需要用户干预(Word显示“打印文档......”对话框),否定了隐藏设置的设置。
我正在使用.Net 2.0,C#,Word 2007和Windows Vista。
我的实际代码如下:
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();
非常感谢帮助...
请注意,我知道我可以使用Word或Acrobat API来实现同样的目的,但这个问题具体是关于shell进程的可见性。
答案 0 :(得分:2)
将StartInfo.WindowStyle传递给应用程序,应用程序可以随意使用它(它可以使用它或忽略它)。
我不确定,但我认为CreateNoWindow仅适用于控制台应用程序。
一旦进程启动,你无法控制它,并且该进程可以显示它想要的任何UI,你最好的选择是使用特定的程序选项(对于像Dave建议的Office使用自动化,我不知道关于Acrobat)。
答案 1 :(得分:1)