none
プリンタのステータスの取得について RRS feed

  • 質問

  • 開発環境
    Windows XP Professional SP2
    VS2008 C#
    Framework 2.0

     

    まだまだ、プログラム勉強中の初心者です。

     

    現在プリンタに関するプログラムを作成していて、
    「通常使うプリンタ」に対する現在のステータスを取得をしたいと考えています。

    繋がっているプリンタは「EPSON LP-3000C」「Canon CP510」の2台。


    「GetPrinter」関数を使って「PRINTER_INFO_2」の「Status」から取得出来るという事で、プログラムを作りましたが、取得できる項目と出来ない項目があります。

    ネット等で調べて、プリンタドライバに依存する。

    との事だったので、それは仕方がないと。。。

     

    ただ、腑に落ちない事があるのですが、【コントロールパネル】-【プリンタとFAX】で表示を詳細にしたときにでる「状態」と結果が違うということです。
    コンパネからプリンタの一時停止をすると、コンパネ上でも「PRINTER_INFO_2」でも一時停止になってくれます。
    でも、コンパネ上ではオフラインになっているものが「PRINTER_INFO_2」ではオフラインになってくれません。

     

    試しに Framework 3.0 で「PrintQueue」を使う方法も試しましたが状態は同じでした。


    OSで取得できているのであれば、プログラムでも取得出来ると思うのですが、方法が違うのでしょうか?
    また、「GetPrinter」を使用せずに、コンパネ上のプリンタの状態を取得する方法はあるのでしょうか?

     

    分かりづらい文書ですが、ご存知であればご教授よろしくお願いいたします。

     

    2008年5月30日 7:42