使用 win32print 获取打印机状态代码
Get Printer Status Code with win32print
我已经阅读了win32print
的文档,其中指出GetPrinter
是用于获取打印机状态的方法。但是,此方法 returns 一个完整的数据元组,我不知道哪个元素指示实际状态。有什么想法吗?
(None, 'HP Deskjet F4400', '', 'USB001', 'HP Deskjet F4400 series Class Driver', '', '', None, '', 'winprint', 'RAW', '', None, 1600, 1, 0, 0, 0, 0, 2, 0)
如果您将 Level=2
传递给 GetPrinter,它应该 return 一个字典。然后你可以检查键。所以,你可以这样做:
d = GetPrinter(yourPrinter, 2)
print(d.keys())
然后在键中查找 'status'。
>
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,因为这是默认设置。所以它实际上是已经 returned 的级别(就像一个元组)。
假设您使用的是 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;
我已经阅读了win32print
的文档,其中指出GetPrinter
是用于获取打印机状态的方法。但是,此方法 returns 一个完整的数据元组,我不知道哪个元素指示实际状态。有什么想法吗?
(None, 'HP Deskjet F4400', '', 'USB001', 'HP Deskjet F4400 series Class Driver', '', '', None, '', 'winprint', 'RAW', '', None, 1600, 1, 0, 0, 0, 0, 2, 0)
如果您将 Level=2
传递给 GetPrinter,它应该 return 一个字典。然后你可以检查键。所以,你可以这样做:
d = GetPrinter(yourPrinter, 2)
print(d.keys())
然后在键中查找 'status'。
> 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,因为这是默认设置。所以它实际上是已经 returned 的级别(就像一个元组)。
假设您使用的是 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;