PDA

View Full Version : چطور آماده بودن چاپگر رو چک کنم؟



mehdi_moosavi
جمعه 01 خرداد 1383, 20:45 عصر
سلام دوستان
خسته نباشید ( البته میدونم هرکی با دلفی کار میکنه خسته نمیشه )
میشه بفرمایید دستور چک کردن آماده بودن چاپگر چیه؟
متشکرم

hotice
جمعه 01 خرداد 1383, 23:36 عصر
با سلام خدمت دوست عزیز.
هر چی خودم فکر کردم نتونستم بفهمم که چطوری میشه اماده بودن پرینتر رو تست کنم البته اگر منظورت روشن بودن پرینتره.
برای اینکه سوالت بیجواب نمونه دست بدامن اینتر نت شدم و کد زیر رو برات فرستادم: (البته داغ داغ هست .تست نشده)


unit ps1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, printers;

type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
Button2: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

function PrinterStatus : integer;
asm
mov ah, 2 // function 2 - returns status of port
mov dx, 0 // lpt1 = 0, lpt2 = 1 etc
int $17 // status in ah
mov al, ah
and eax, $FF // status now in eax with top 24 bits cleared
end;

const
PrinterCodes : array [0..7] of string =
('printer timed-out',
'unused',
'unused',
'I/O error',
'printer selected',
'out of paper',
'printer acknowedgment',
'printer not busy');

procedure TForm1.Button1Click(Sender: TObject);
var
L, P : integer;
begin
P := PrinterStatus;
ListBox1.Clear;
for L := 0 to 7 do
if P and (1 shl L) <> 0 then
ListBox1.Items.Add (PrinterCodes [L]);
end;

end.

موفق باشی. :)

hotice
جمعه 01 خرداد 1383, 23:41 عصر
سلام
ببخشید باز هم یک چیزی برات پیداکردم :


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)

موفق باشی. :)

مهدی کرامتی
شنبه 02 خرداد 1383, 01:52 صبح
جالب بود!