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;