Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.02;
Скачать: CL | DM;

Вниз

Очередь печати   Найти похожие ветки 

 
Bacardi   (2007-05-18 20:50) [0]

Как очистить очередь печати принтера?


 
Rouse_ ©   (2007-05-19 12:23) [1]

uses ..., WinSpool;

procedure TForm1.Button1Click(Sender: TObject);
var
 PrintersInfo, TmpPrintersInfo: PPrinterInfo1;
 pcbNeeded, pcReturned, jpcbNeeded, jpcReturned: DWORD;
 I, J: Integer;
 hPrinter: THandle;
 JobInfo, TmpJobInfo: PJobInfo3;
begin
 EnumPrinters(PRINTER_ENUM_LOCAL, nil, 1, PrintersInfo, 0, pcbNeeded,  pcReturned);
 if GetLastError = ERROR_INSUFFICIENT_BUFFER then
 begin
   GetMem(PrintersInfo, pcbNeeded);
   try
     if EnumPrinters(PRINTER_ENUM_LOCAL, nil, 1,
       PrintersInfo, pcbNeeded, pcbNeeded,  pcReturned) then
     begin
       TmpPrintersInfo := PrintersInfo;
       for I := 0 to pcReturned - 1 do
       begin
         if OpenPrinter(TmpPrintersInfo^.pName, hPrinter, nil) then
         begin
           EnumJobs(hPrinter, 0, 100, 1, nil,
             0, jpcbNeeded, jpcReturned);
           if GetLastError in [NO_ERROR, ERROR_INSUFFICIENT_BUFFER] then
           begin
             GetMem(JobInfo, jpcbNeeded);
             try
               if EnumJobs(hPrinter, 0, 100, 3, JobInfo,
                 jpcbNeeded, jpcbNeeded, jpcReturned) then
               begin
                 TmpJobInfo := JobInfo;
                 for J := 0 to jpcReturned - 1 do
                 begin
                   if not SetJob(hPrinter, TmpJobInfo^.JobId, 0,
                     nil, JOB_CONTROL_DELETE) then RaiseLastOSError;
                   Inc(TmpJobInfo);
                 end;
               end
               else
                 RaiseLastOSError;
             finally
               FreeMem(JobInfo);
             end;
           end
           else
             RaiseLastOSError;
         end
         else
           RaiseLastOSError;
         Inc(TmpPrintersInfo);
       end;
     end
     else
       RaiseLastOSError;
   finally
     FreeMem(PrintersInfo);
   end;
 end
 else
   RaiseLastOSError;
end;


 
Bacardi   (2007-05-19 16:00) [2]

спасибо



Страницы: 1 вся ветка

Текущий архив: 2007.12.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
6-1175247082
Wolchonok29
2007-03-30 13:31
2007.12.02
Передача потока


15-1193799559
Slider007
2007-10-31 05:59
2007.12.02
С днем рождения ! 31 октября 2007 среда


8-1170501964
Совсем новичок
2007-02-03 14:26
2007.12.02
Оперделить угол поворота


15-1193772970
korneley
2007-10-30 22:36
2007.12.02
Фича/глюк/(не)задокументированная возможность ?


2-1194634076
_Levin
2007-11-09 21:47
2007.12.02
Организовать цикл.