Пользователь
Сообщения: 85
Благодарности: 0
|
Профиль
|
Отправить PM
| Цитировать
Одно из сообщение из другого форума:
Здравствуй. Сам я разбираюсь сейчас с аналогичной проблемой - нужно написать
программу-счетчик отпечатанных листов на принтере.
Средствами делфи это не сделать т.к. ТПринтер относится к принтеру,
назначенному текущей программе. Но не это проблема.
Есть два режима работы принтера - через спулер (winspool.drv) и прямая посылка
данных на принтер (знаешь да,?). Так вот с прямой посылкой еще не ясно, разбираться
пока не могу, а со спулером - принтер посылает сообщение всем программам
в винде при начале печатания страницы и при конце, при этом оперирует
такими понятиями как job, spooler и еще какими-то (пишу по памяти, доки далеко)
)
FAQ1727D.txt Detecting how many jobs are in the print spooler
Category :Windows API
Platform :All
Product :All 32 bit
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;
это, конечно, немного не то. Но структура job имеет в своем составе много полей,
в том числе и поле статуса задания. Есть функции работы с заданиями.
(Опять же доки далеко, не могу сказать конкретно)
А стандартное системное окошко работает напрямую с драйвером конкретного
принтера, алгоритмы работы его являются ноу-хау изготовителя принтера.
Пока все. В дальнейшем смогу сказать больше, как накопаю инфу.
Буду рад сотрудничеству.
|
-------
Quake - это не игра, это спорт.
Отправлено: 15:26, 28-10-2005
| #5
|