WMI 打印机状态始终为 0

WMI PrinterStatus always 0

我想检查打印机是否有纸,为此我使用WMI拿起打印机并使用PrinterStatus,问题是它总是returns 0 (" Unknow"), 也不明白原因,我的代码如下:

public int ImpresoraStatus()
{
    var printerQuery = new ManagementObjectSearcher("SELECT * from Win32_Printer WHERE Name = \"KPOS_80 Printer\"");
    foreach (var printer in printerQuery.Get())
    {
        int status = (int)printer["PrinterStatus"];
        return status;
    }

    return 404;
}

有什么改进或我遗漏的东西吗?

这是一个已知问题 AFAIK。您可能需要先尝试打印一些东西,然后再检查状态。

参见:Not Able to Monitor Printers' States and Statuses