開発環境
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」を使用せずに、コンパネ上のプリンタの状態を取得する方法はあるのでしょうか?
分かりづらい文書ですが、ご存知であればご教授よろしくお願いいたします。