我已阅读win32print
的文档,其中指出GetPrinter
是用于获取打印机状态的方法。但是,这种方法会返回一个完整的数据元组,并且我不知道哪个元素指示实际状态。有什么想法吗?
(None, 'HP Deskjet F4400', '', 'USB001', 'HP Deskjet F4400 series Class Driver', '', '', None, '', 'winprint', 'RAW', '', None, 1600, 1, 0, 0, 0, 0, 2, 0)
答案 0 :(得分:2)
如果你将Level=2
传递给GetPrinter,它应该返回一个dict。然后你可以检查键。所以,你可以这样做:
d = GetPrinter(yourPrinter, 2)
print(d.keys())
在键中查找“状态”。
> 返回包含PRINTER_INFO_ *数据的字典,如果没有传入级别,则返回PRINTER_INFO_2数据的元组。
我建议使用级别2,因为这是默认值。所以它实际上是已经返回的级别(就像元组一样)。
答案 1 :(得分:1)
假设您正在使用GetPrinter的默认级别参数,它将返回在https://msdn.microsoft.com/en-us/library/windows/desktop/dd162845%28v=vs.85%29.aspx定义的PRINTER_INFO_2
这是C ++定义,但它应与您提供的响应中的21个成员匹配。
typedef struct _PRINTER_INFO_2 {
LPTSTR pServerName;
LPTSTR pPrinterName;
LPTSTR pShareName;
LPTSTR pPortName;
LPTSTR pDriverName;
LPTSTR pComment;
LPTSTR pLocation;
LPDEVMODE pDevMode;
LPTSTR pSepFile;
LPTSTR pPrintProcessor;
LPTSTR pDatatype;
LPTSTR pParameters;
PSECURITY_DESCRIPTOR pSecurityDescriptor;
DWORD Attributes;
DWORD Priority;
DWORD DefaultPriority;
DWORD StartTime;
DWORD UntilTime;
DWORD Status;
DWORD cJobs;
DWORD AveragePPM;
} PRINTER_INFO_2, *PPRINTER_INFO_2;