我正在尝试使用 ShellExecute 从我的 Windows 服务打印 pdf、ppt 和 word 文档。
Process printingProcess = new Process
{
StartInfo =
{
FileName = filePath,
WindowStyle = ProcessWindowStyle.Hidden,
CreateNoWindow = true,
UseShellExecute = true,
Verb = "Print"
}
};
printingProcess.Start();
这在大多数情况下都有效。但是对于损坏的 Word 文档,Process.Start 方法永远不会完成并且服务会挂起。
基本上,word会弹出“坏文档!修复”对话框。我希望该服务能够识别出该单词的播放效果不佳并终止该进程并继续处理其队列中的下一个文档。
我该怎么办?
[更新]
伙计们,这是重现问题的代码:
static void Main(string[] args)
{
string filePath = @"d:\corruptdocument.docx";
PrintDocument(filePath);
Console.WriteLine("Completed!");
Console.ReadKey();
}
private static void PrintDocument(string filePath)
{
Process printingProcess = new Process
{
StartInfo =
{
FileName = filePath,
WindowStyle = ProcessWindowStyle.Hidden,
CreateNoWindow = true,
UseShellExecute = true,
Verb = "Print"
}
};
using (printingProcess)
{
Console.WriteLine("Starting process...");
printingProcess.Start();
Console.WriteLine("Completed start...");
}
}
这是一个截图:http ://twitpic.com/23jwor