![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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.
} |