.NETFramework4.0 & VisualStudio 2010 Expressを使いC#で開発しています。
PrintDocumentからPrint()をすると、Windowsに印刷ジョブを投げた時点で
処理が完了してしまい、PrintDocumentのEndイベントを拾っても、紙切れや
オフライン時のエラーを検知できないことに気がつきました。
PrintDocumentからPrint()を実行したあとに、印刷ジョブのステータス監視を行い、
紙切れやオフラインの通知をユーザーに返すためには、どうすればよいでしょうか?
また、紙切れが解消されたことを拾うことも、できるのでしょうか?
よろしくお願いいたします。
スプーラー API というのを使います。
FindFirstPrinterChangeNotification
FindNextPrinterChangeNotification
WIN32API の呼び出しになるので、どんな言語で実装してもあまり変わり映えしません。
# というか、C# のサンプルコードを見つけられてないだけなんですが (^^;
(追記)
一応、C# のサンプルを見つけました。
http://www.codeproject.com/KB/printing/PrinterQueueMonitor.aspx?display=Print
ただ、callback の書き方だったり、DLL のインポートの書き方が違うだけで、
API の使い方、という意味では、先にあげたリンクと同じ内容です。
ありがとうございます!
教えて頂いたリンクをあとで拝見させて頂きます!!