1

Python のwin32printモジュールを使用して、ドライバー名、ジョブ数、使用中のポート、ステータスなど、一連のプリンターに関するさまざまな情報を取得しようとしています。ほとんど成功していますが、多くの問題が発生しています。 win32print が API から返すステータス コードを使用します。

PRINTER_INFO_ ディクショナリを返す win32print.GetPrinter メソッドを使用しており、1 つのマッピングは Status です。ただし、どのステータス コードがどのプリンタ ステータスに対応するかは文書化されていません。0がアイドル、1が一時停止のようですが、それ以外はよくわかりません。

Windows 32bit API の定数の値を調べたところ、このページが見つかりましたが、これまでに返されたステータス コードはどれも一致していないようです。多くの場合、win32api 定数のリストにない 1052800 (Epson プリンターから取得) のようなステータス コードを取得します。

また、WMI モジュールを使用してこれを実行しようとしましたが、成功率はさらに低くなりました。

プリンターの用紙切れ、プリンターのドアが開いている、トナーが少ない、紙詰まりなどのプリンターステータスコードを取得したいと思います。これらのステータスコードの意味を見つけるためのヒント、またはプリンターのステータスを見つけるためのより良い解決策はありますか完全に?

4

2 に答える 2

1

返されるステータスはビットマスクです。たとえば、ここで説明されています。複数の値を OR で結合できるため、値 1052800 (hex 0x101080) は、プリンターが (すべての) ステータスを持っていることを意味します。

  • PRINTER_STATUS_USER_INTERVENTION
  • PRINTER_STATUS_NOT_AVAILABLE
  • PRINTER_STATUS_OFFLINE
于 2012-08-20T16:51:30.607 に答える