【发布时间】:2012-06-26 16:07:09
【问题描述】:
我有一个 .net 2.0 应用程序 (c#),其中一个组件作为服务运行,还有一个用于配置服务的 UI。
UI 为用户提供了一种选择服务将使用的打印机的方法。
我希望 UI 过滤掉任何配置为打印到文件的打印机,因为这些打印机会导致服务出现问题(“另存为”对话框将打开,但该对话框不可见,因为它属于服务)。
问题是我找不到任何方法来检测设置为打印到文件的打印机。
System.Drawing.Printing.PrinterSettings 有一个名为 PrintToFile 的属性,但它始终设置为 false!
【问题讨论】:
-
真正的打印机可能会显示“请装入更多纸张”——基本上,任何打印机可能都想显示 UI。
-
是的,我的大炮打印机喜欢弹出一些进度条和对话框
-
除此之外,我相信大多数打印机都是按用户安装的 - 而服务往往在机器帐户下运行 - 因此服务可能无论如何都无法访问打印机。
-
感谢 cmets,但您提到的消息在创建打印作业时不会显示 - 它们会在实际打印过程中显示。因此,这些消息将显示给已登录的用户(如果有的话),而不是在假脱机作业的进程的上下文中。