2014-10-03 39 views
-1

我需要按特定顺序打印文档。 为此,我使用shellExecute api来打印文档。获取打印机默认使用的进程

某些文档可能会更快打印,所以我必须等待文档在调用另一个shellExecute之前在假脱机程序中。

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

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

我可以看所有打印机,但是,我更愿意知道哪个打印机使用启动的过程并观看此打印机。

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

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

+0

我们在谈论什么应用程序?也许还有其他选择? – whosrdaddy 2014-10-03 11:29:57

+0

好吧,我不知道应用程序。它可以是与文档类型关联的任何应用程序。通常,它是pdf阅读器,ms word ans ms excel,但它可以是其他任何东西 – Arsnow 2014-10-13 06:58:17

回答

0

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

不,没有。程序有权使用他们选择的任何逻辑来确定其默认打印机。所以一般来说,你无法问一个过程使用哪台打印机,而没有更具体的相关过程知识。

相关问题