Форум: "WinAPI";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];
ВнизОтмена печати и очистка очереди на печать. Найти похожие ветки
← →
Age (2004-09-07 16:57) [0]Уважаемые знатоки, как можно сделать, что бы программа при загрузке самостоятельно очищала очередь печати принтера на локальном компьютере и прерывала вывод на печать. Заранее благодарю.
← →
Jeer © (2004-09-07 17:54) [1]Написать такую программу с использованием EnumJobs(..) и SetJob(..)
← →
Age (2004-09-14 12:39) [2]Procedure AbortJobs(sPrinterName: string;
var
i: Integer;
hPrinter: THandle;
bResult: Boolean;
cbBuf: DWORD;
pcbNeeded: DWORD;
pcReturned: DWORD;
aJobs: array[0..99] of JOB_INFO_1;
begin
cbBuf := 1000;
bResult := OpenPrinter(PChar(sPrinterName), hPrinter, nil);
if not bResult then
begin
MessageDlg("Не удалось открыть принтер.", mtError, [mbOK],0);
exit;
end;
bResult := EnumJobs(hPrinter, 0, Length(aJobs), 1, @aJobs, cbBuf, pcbNeeded,
pcReturned);
if not bResult then
begin
MessageDlg("Не удалось открыть задания.", mtError, [mbOK],0);
ClosePrinter(hPrinter);
exit;
end;
If pcReturned = 0 then
begin
MessageDlg(Нет заданий на печать!", mtError, [mbOK],0);
ClosePrinter(hPrinter);
exit;
end;
for i := 0 to pcReturned - 1 do
begin
if aJobs[i].pDocument <> nil then
begin
bResult := SetJob( hPrinter, aJobs[i].JobId, 0, niL, JOB_CONTROL_DELETE); //Для NT,2000,XP
//bResult := SetJob( hPrinter, aJobs[i].JobId, 0, niL, JOB_CONTROL_CANCEL);//Для 95,98,Me
end;
end;
ClosePrinter(hPrinter);
end;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.081 c