X xiaoxiaoniao Unregistered / Unconfirmed GUEST, unregistred user! 2007-07-18 #1 如何获得串口打印机的状态信息(如缺纸,未联机等)
A abigfish Unregistered / Unconfirmed GUEST, unregistred user! 2007-07-18 #2 打印机应该有交互协议,指令不通就是未联机,上网查一查
X xiaoxiaoniao Unregistered / Unconfirmed GUEST, unregistred user! 2007-07-18 #3 我用的是Star Sp320指令是<ESC> "@" (1B)h(40)h,但不知道怎么用
A abigfish Unregistered / Unconfirmed GUEST, unregistred user! 2007-07-18 #4 找个串口数据监测工具,打开串口助手,连上打印机,试着开关打印机,还有在串口助手里发送指令,看有没什么反应,注意波特率,指令后面要加回车,有的指令是十六进制的
G gutiqiang Unregistered / Unconfirmed GUEST, unregistred user! 2007-07-31 #5 关注,我现在也正在处理这个问题,但没有好的办法。
G gutiqiang Unregistered / Unconfirmed GUEST, unregistred user! 2007-08-01 #6 网上好多朋友说用这种方法,读取端口,但我读出来的不是$80、$20、$10这些值。而是 十进制的:80、216、88、152、112、120、64这些。 //从并行端口读取打印机状态 function GetPrinterStatus:byte; asm MOV DX,$379; IN AL,DX; end; //获取打印机是否出错 function CheckPrinter:boolean; var temp:byte; begin temp:=GetPrinterStatus; Result:=not ( ((temp and $80)=0) //打印机忙 or ((temp and $20)<>0) //打印机缺纸 or ((temp and $10)=0) //打印机未联机 or ((temp and $08)=0) ); //打印机出错; end;
网上好多朋友说用这种方法,读取端口,但我读出来的不是$80、$20、$10这些值。而是 十进制的:80、216、88、152、112、120、64这些。 //从并行端口读取打印机状态 function GetPrinterStatus:byte; asm MOV DX,$379; IN AL,DX; end; //获取打印机是否出错 function CheckPrinter:boolean; var temp:byte; begin temp:=GetPrinterStatus; Result:=not ( ((temp and $80)=0) //打印机忙 or ((temp and $20)<>0) //打印机缺纸 or ((temp and $10)=0) //打印机未联机 or ((temp and $08)=0) ); //打印机出错; end;
心 心飞雪 Unregistered / Unconfirmed GUEST, unregistred user! 2007-08-02 #8 function GetPrinterStatus:byte; asm MOV DX,$379; IN AL,DX; end; //获取打印机是否出错 function CheckPrinter:boolean; var temp:byte; begin temp:=GetPrinterStatus; Result:=not ( ((temp and $80)=0) //打印机忙 or ((temp and $20)<>0) //打印机缺纸 or ((temp and $10)=0) //打印机未联机 or ((temp and $08)=0) ); //打印机出错; end; 这段代码只能用于非windows NT上面
function GetPrinterStatus:byte; asm MOV DX,$379; IN AL,DX; end; //获取打印机是否出错 function CheckPrinter:boolean; var temp:byte; begin temp:=GetPrinterStatus; Result:=not ( ((temp and $80)=0) //打印机忙 or ((temp and $20)<>0) //打印机缺纸 or ((temp and $10)=0) //打印机未联机 or ((temp and $08)=0) ); //打印机出错; end; 这段代码只能用于非windows NT上面