winspool.drv SetDefaultPrinter 返回 false

Posted

技术标签:

【中文标题】winspool.drv SetDefaultPrinter 返回 false【英文标题】:winspool.drv SetDefaultPrinter returns false 【发布时间】:2014-10-15 01:09:47 【问题描述】:

在我们的一个应用程序中,我们使用了 winspool.drv SetDefaultPrinter(abc) 方法。在某些机器上它工作正常,但在其他机器上它不起作用(调用 SetDefaultPrinter() 方法返回 false)。

我之前的猜测可能是无法正常工作的机器上缺少winspool.drv。但是,winspool.drv 存在于所有机器上。

谁能解释一下 SetDefaultPrinter(..) 在什么情况下会返回 false (0) 以及我该怎么做才能使调用成功?

【问题讨论】:

【参考方案1】:

您是否检查过打印机名称在工作站上是否可用?

foreach (string sAvailable in PrinterSettings.InstalledPrinters)

    XML.log("Available printer " + sAvailable, Constants.logDebug);
    if (sPrinter == sAvailable)
    
       break;
    

【讨论】:

以上是关于winspool.drv SetDefaultPrinter 返回 false的主要内容,如果未能解决你的问题,请参考以下文章

使用winspool.Drv-WritePrinter打印使用符号而不是正确的页面打印数百页

winform设置默认打印机

C# 默认打印机设置

在UWP中打印原始数据

使用Visual Basic将原始数据发送到ZPL打印机(MS Access 2000)