0

我正在使用“.NET v1.14 的 Microsoft 服务点”。用于连接 Posiflex 热敏打印机(PP8800 型号)的 dll。我正在使用的代码片段也粘贴在下面。我正在从 WPF 应用程序运行此代码。

但我面临一个奇怪的问题。如果打印机通电并重新启动连接打印机的机器,则下面粘贴的代码无法认领打印机,也不会出现在Claim()语句中。而如果我关闭打印机电源,然后在运行以下代码段之前打开它,那么它就可以认领打印机。

PosExplorer posExplorer = new PosExplorer();
var printerList = posExplorer.GetDevices(DeviceType.PosPrinter);

foreach (DeviceInfo item in printerList)
{
    if (item.ServiceObjectName != printerName)
        continue;

    posPrinter = (PosPrinter)posExplorer.CreateInstance(item);
    posPrinter.Open();

    posPrinter.PowerNotify = PowerNotification.Enabled;
    posPrinter.FlagWhenIdle = true;
    posPrinter.StatusUpdateEvent += PosPrinter_StatusUpdateEvent;
    posPrinter.DirectIOEvent += PosPrinter_DirectIOEvent;
    posPrinter.ErrorEvent += PosPrinter_ErrorEvent;
    posPrinter.OutputCompleteEvent += PosPrinter_OutputCompleteEvent;

    try
    {
        posPrinter.Claim(100);
        if (posPrinter.Claimed)
        {
            isPrinterClaimed = true;                           
        }
        else
        {    
            isPrinterClaimed = false;
        }
    }
    catch (Exception ex)
    {
        isPrinterClaimed = false;
    }

    break;
}

有人在使用 OPOS 库时遇到过同样的问题吗?

4

0 回答 0