System.Diagnostics.Process
オブジェクトを作成し、動詞を「print」に設定してから、processメソッドStartInfo
を呼び出して、ドキュメントを印刷しています。Start()
この印刷プロセスを非表示にしたいので、とを設定CreateNoWindow = true
してWindowStyle = ProcessWindowStyle.Hidden
います。ただし、アプリケーション(WordまたはAcrobat)は印刷中に表示されます。
プロセスにユーザー名またはパスワードが設定されている場合、非表示のプロセス設定は無視されることを知っています。デバッグして、それらが空であることを確認しました。私はそれらを明示的にNULLに設定して無駄にしようとさえしました。
印刷のアクションによって、アプリケーションがユーザーの介入を必要とするかのように動作するのではないかと思います(Wordは「ドキュメントの印刷..」ダイアログボックスを表示します)。これにより、アプリケーションを非表示にする設定が無効になります。
.Net 2.0、C#、Word 2007、およびWindowsVistaを使用しています。
私の実際のコードは次のとおりです。
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またはAcrobatAPIを使用して同じことを実現できることは承知していますが、この質問は特にシェルプロセスの可視性に関するものです。