如何在Windows服务中获取打印事件?

时间:2014-02-16 17:19:32

标签: c# windows-services

我正在使用PDF Exchange API在Windows控制台/表单应用程序中获取打印事件。但是当我编写相同的代码来进行服务时,代码不能与服务一起使用。我正在使用以下代码。

PXCComLib5.CPXCControlEx prnFactory = new PXCComLib5.CPXCControlEx();
PDFPrinter = (PXCComLib5.CPXCPrinter)prnFactory.get_Printer("", "Simple PDF-XChange 2012", "<REG CODE>", "<DEV CODE>");
PDFPrinter.Option["Save.ShowSaveDialog"] = false;
PDFPrinter.SetAsDefaultPrinter();

PDFPrinter.OnStartDoc += new PXCComLib5._IPXCPrinterEvents_OnStartDocEventHandler(prn_OnStartDoc);
PDFPrinter.OnFileSaved += new PXCComLib5._IPXCPrinterEvents_OnFileSavedEventHandler(prn_OnFileSaved);
PDFPrinter.OnDocSpooled += new PXCComLib5._IPXCPrinterEvents_OnDocSpooledEventHandler(prn_OnDocSpooled);
PDFPrinter.OnError += new PXCComLib5._IPXCPrinterEvents_OnErrorEventHandler(prn_OnError);
PDFPrinter.OnStartPage += new PXCComLib5._IPXCPrinterEvents_OnStartPageEventHandler(prn_OnStartPage);
PDFPrinter.OnEndPage += new PXCComLib5._IPXCPrinterEvents_OnEndPageEventHandler(prn_OnEndPage);
PDFPrinter.OnEndDoc += new PXCComLib5._IPXCPrinterEvents_OnEndDocEventHandler(prn_OnEndDoc);

方法如下:

void prn_OnStartPage(int JobID, int nPageNumber)
{
     logger.Trace("StartPageEvent called");
}

同样定义了其他方法。

此代码在用作Windows控制台/表单应用程序但不使用Windows服务时有效。 此外,我在安装服务后尝试了启用桌面交互选项 我正在使用Windows 7和Visual Studio 2010 我需要做任何额外的配置吗?

0 个答案:

没有答案