我已经创建了一个Delphi服务,它负责将QuckReports打印到printer.Printers列表中包含的特定打印机。我将打印机名称传递给我的例程,它在printer.printers数组中查找以获得正确的索引。然后,它执行以下操作:
QuickRep1.PrinterSettings.PrinterIndex := iIndex;
在帮助文件中,它为printer.refresh写道:“当当前系统上安装的字体或打印机可能已更改时,调用刷新”。因此,在根据printer.printers数组查找打印机名称之前,我调用了刷新。
在我的一次安装中,这个功能不能正常工作。如果添加/删除了打印机,或者有人在其配置文件中使用打印机登录,则在停止并重新启动服务之前,列表似乎不会刷新。
此函数对服务不起作用吗?发生这种情况的安装使用“虚拟服务”。这会与此有关吗?
谢谢。
发布于 2009-08-04 19:05:32
我的经验和理解是,打印机数组仅在应用程序启动时更新。每次安装新打印机时,都必须重新启动应用程序以获取正确的列表。
我很好奇听到自己对此有什么不同的体验。
编辑:来自我下面的评论;我写了一个小测试程序,确认TPrinters.Refresh()确实更新了打印机列表。
https://stackoverflow.com/questions/1228290
复制相似问题