Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для DIKPro

Пользователь


Сообщения: 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