如何偵測印表機未開電源? |
|
turtle
一般會員 發表:9 回覆:4 積分:2 註冊:2002-04-05 發送簡訊給我 |
|
linkolong
一般會員 發表:4 回覆:35 積分:12 註冊:2002-04-23 發送簡訊給我 |
這裡有一個程式碼,可偵測列表機開機否,參考一下
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; //status of printer in P
ListBox1.Clear;
for L := 0 to 7 do
if P and (1 shl L) <> 0 then
ListBox1.Items.Add (PrinterCodes [L]);
end;
|
kenji
一般會員 發表:32 回覆:44 積分:20 註冊:2002-08-05 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 雖然這是很久前的文章..但想問問... 網路印表機可以偵測嗎? 謝謝。不行吧, 那是呼叫BIOS的Function Calll 所以應該只能適用Local的Printer如LPT1/LPT2...等 我有寫一個Direct Print的函式 可以傳控制指令碼給網路印表機 但不知可否如法泡制 取回印表機的狀態 unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} uses printers; procedure DirectPrint(s:string); type TPrnBuffRec = record BuffLength : word; Buffer : array [0..255] of char; end; var Buff : TPrnBuffRec; i,n:integer; c:char; begin n:=length(s); for i:=1 to n do begin c:=s[i]; Buff.Buffer[i-1]:=c; end; Buff.BuffLength := n; Escape(Printer.Canvas.Handle, PASSTHROUGH, 0, @Buff, nil); end; procedure TForm1.Button1Click(Sender: TObject); begin DirectPrint('This is printer ABC !' #13#10); end; end. ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
bill_action
一般會員 發表:2 回覆:1 積分:0 註冊:2003-03-13 發送簡訊給我 |
|
uhlin
一般會員 發表:8 回覆:6 積分:2 註冊:2003-07-04 發送簡訊給我 |
|
pokemf
一般會員 發表:5 回覆:12 積分:3 註冊:2002-05-24 發送簡訊給我 |
引言: 這裡有一個程式碼,可偵測列表機開機否,參考一下 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; //status of printer in P ListBox1.Clear; for L := 0 to 7 do if P and (1 shl L) <> 0 then ListBox1.Items.Add (PrinterCodes [L]); end;請教各位先進: 我需檢測LPT1電源是否開啟或檢測LPT印表機忙碌或閒置並READY狀態,所以依上列引言的code ,執行 Button1click後,出現一下畫面: img]http://delphi.ktop.com.tw/loadfile.php?TOPICID=23051524&CC=515536[/img] 請問是甚麼問題,應該如合解決. 謝謝 pokemf |
pokemf
一般會員 發表:5 回覆:12 積分:3 註冊:2002-05-24 發送簡訊給我 |
引言: 這裡有一個程式碼,可偵測列表機開機否,參考一下 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; //status of printer in P ListBox1.Clear; for L := 0 to 7 do if P and (1 shl L) <> 0 then ListBox1.Items.Add (PrinterCodes [L]); end;請教各位先進: 我需檢測LPT1電源是否開啟或檢測LPT印表機忙碌或閒置並READY狀態,所以依上列引言的code ,執行 Button1click後,出現一下畫面: 請問是甚麼問題,應該如合解決. 謝謝 pokemf |
JLATSTAR
一般會員 發表:8 回覆:16 積分:4 註冊:2007-05-08 發送簡訊給我 |
此篇為轉載文章
原提供者 cxg 轉載內容 在下面有一个源码smport,怎样读取lpt的信息。 http://www.hw.cz/programovani/win_porty/smport.zip 你可以参考一下。 使用說明 解壓縮後,內含簡易範例及Source
編輯記錄
JLATSTAR 重新編輯於 2007-05-08 16:40:56, 註解 使用說明‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |