2011-06-28 3 views
1
ps = new PrintServer(printserverName); 

PrintQueue pq1 = new PrintQueue(ps, pq.Name); 

私の理解によると、pq1は印刷ジョブを処理するプリンタキューです。PrintQueueのイベント

この印刷キューのイベントを捕捉したいと考えています。

たとえば、ユーザーAが印刷を実行すると、この印刷ジョブがキューに追加されます。このジョブをキューイベントに追加して捕捉します。ユーザーに許可されているページ数を知ることができます。ユーザー。

+0

ないイベントを、タイマーとのポーリングが必要です。ページをカウントしてユーザーをブロックすることは正確にはサポートされていません。 –

答えて

0

私が理解しているように、ouは自分のOWNプリントキュー(AddJobなど)を処理できますが、他のユーザーのプリントジョブをインターセプトすることはできません。 Win32 APIレベルで使用すると、イベントをキューにフックアップするためのオプションを持っているよう

+0

まさに私はAddJobイベントを捕まえたいと思います。同じようなコードスニペットを知っています。 – Ashutosh

0

はルックス:

あなたはキューのジョブコレクションのためのポーリングを維持しない限り、私は.NETで同じことを見つけることができませんでした。

を見てみましょう:

http://msdn.microsoft.com/en-us/library/dd162722(v=vs.85).aspx

PRINTER_CHANGE_JOB

は、ジョブへの変更を通知します。あなたはこの一般的なフラグまたは以下の特定のフラグの1以上に設定することができます

PRINTER_CHANGE_ADD_JOB PRINTER_CHANGE_SET_JOB PRINTER_CHANGE_DELETE_JOB PRINTER_CHANGE_WRITE_JOB