Mega Code Archive

 
Categories / Delphi / API
 

Detecting how many jobs are in the print spooler

Question: Is there any way to detect how many jobs are in the Windows print spooler at any given time? Answer: The Windows print spooler regularly broadcasts a system wide WM_SPOOLERSTATUS message each time a job is added or deleted from the spooler que. The following example demonstrates trapping for this message. Example: type TForm1 = class(TForm) Label1: TLabel; private { Private declarations } procedure WM_SpoolerStatus(var Msg : TWMSPOOLERSTATUS); message WM_SPOOLERSTATUS; public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.WM_SpoolerStatus(var Msg : TWMSPOOLERSTATUS); begin Lable1.Caption := IntToStr(msg.JobsLeft) + ' Jobs currenly in spooler'; msg.Result := 0; end;