|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как перехватить печать на принтере?
Здравствуйте!
Подскажите, как из Delphi-программы отлавливать момент печати на принтере? Грубо говоря нужно подсчитывать количество отпечатков ну может еще делать скриншот экрана... |
#2
|
||||
|
||||
Снятие скриншота экрана вот:
Код:
procedure GetWindowsScreen( PathToSave: string ); begin with TBitmap.Create do begin Width := Screen.Width; Height := Screen.Height; BitBlt( Canvas.Handle, 0, 0, Width, Height, GetDC( GetDesktopWindow ), 0, 0, SRCCOPY ); SaveToFile( PathToSave ); Free; end; end; procedure TForm1.Button1Click(Sender: TObject); begin GetWindowsScreen( 'C:\Screen.bmp' ); end; |
#3
|
||||
|
||||
А вот и получение состояния принтера, я думаю ты разберёшся:
Код:
function TestPrinterStatus(LPTPort: Word): Byte; var Status: byte; CheckLPT: word; begin Status := 0; if (LPTPort >= 1) and (LPTPort <= 3) then begin CheckLPT := LPTPort - 1; asm mov dx, CheckLPT; mov al, 0; mov ah, 2; int 17h; mov &Status, ah; end; end; Result := Status; end; { Pass in the LPT port number you want to check & get the following back: 01h - Timeout 08h - I/O Error 10h - Printer selected 20h - Out of paper 40h - Printer acknowledgement 80h - Printer not busy (0 if busy) Note: This function doesn't work under NT, it gives an access violation from the DOS interrupt call. } |