用win32prin获取打印机状态代码

2024-10-17 06:19:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经阅读了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)

Tags: 数据方法文档none元素状态打印机hp
2条回答

假设您使用GetPrinter的default level参数,它将返回在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;

如果您将Level=2传递到GetPrinter,它应该返回一个dict。然后您可以检查这些键。所以,你可以这样做:

d = GetPrinter(yourPrinter, 2)
print(d.keys())

在钥匙里找“状态”。在

> Returns a dictionary containing PRINTER_INFO_* data for level, or returns a tuple of PRINTER_INFO_2 data if no level is passed in.

我建议使用级别2,因为这是默认设置。所以它实际上是已经返回的级别(就像元组一样)。在

相关问题 更多 >