通过进程默认使用打印机

时间:2014-10-03 09:51:50

标签: delphi print-spooler-api

我需要按特定顺序打印文档。 为此,我使用shellExecute api打印文档。

某些文档可能更快打印,因此我必须等待文档在假脱机程序中,然后再调用另一个shellExecute。

为此,我使用FindFirstPrinterChangeNotification,waitForSingleObject和FindNextPrinterChangeNotification。

工作正常。 但是如果shellExecute启动的应用程序已经打开,那么它可能会在另一台Windows默认打印机的打印机上打印。 (如果默认打印机已更改)

我可以观看所有打印机,但是,我更喜欢知道打印机使用启动过程并观看此打印机。

使用shellExecuteEx,我可以获得此api启动的进程的句柄。

那么,有没有办法知道一个进程默认使用的打印机?

1 个答案:

答案 0 :(得分:0)

  

那么,有没有办法知道一个进程默认使用的打印机?

不,没有。程序有权使用他们选择的任何逻辑来确定其默认打印机。因此,一般情况下,如果没有对相关过程的更多具体了解,您无法询问过程将使用哪台打印机。