CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

打印机状态检测

楼主hsh()2000-01-18 13:13:00 在 Delphi / VCL组件开发及应用 提问

我有一个打印机的编程问题无解决好随时比人"丙".问题如下:  
  1.打印时的要求是:  
  只打印文本内容;打印内容ASCII码必须直接往打印口送,不采用windows的图形打印方式.  
  2.存在问题:  
  在往打印口送打印内容的ASCII码时,由于不能检查打印机是否巳准备好(包括是否巳接电源),   经常因此而"死机"(打印机未准备好).  
  问题点数:70、回复次数:11Top

1 楼kxy(手举穿肠毒药,怀抱刮骨钢刀)回复于 2000-01-18 13:32:00 得分 0

不妨使用window的打印技术来检测打印机的状态.Top

2 楼yjq(渤海海峡)回复于 2000-01-18 16:42:00 得分 0

用汇编!Top

3 楼zyb()回复于 2000-01-18 16:49:00 得分 0

我也推荐用汇编语言(在Delphi中嵌入)编写测试程序,我曾经用MCS51单片机控制过EPSON   LQ1600K打印机呢!Top

4 楼limodou()回复于 2000-01-18 16:52:00 得分 0

 
  第一个试一试  
  uses   printers;  
  var  
          f:TextFile;  
  begin  
          AssignPrn(f);  
          try  
                  Rewrite(f);  
                  writeln(f,'Print   the   output');  
          finally  
                  CloseFile(f);  
          end;  
  end;  
  第二个不知道Top

5 楼barton()回复于 2000-01-18 21:08:00 得分 0

1.向打印口发送文本的方法其实很多。楼上讲的文件重定向当然是最简单的。  
  2.打印机的检测要用API。用Printer只能作最简单的检测。Top

6 楼929()回复于 2000-01-26 17:07:00 得分 0

可用CREATEFILE以PRN为文件名生成一个文件,检测返回值,若成功则打印机可用,否则显示打印机故障。生成关于PRN的文件句柄后,可象普通文件一样向文件写入内容,比如WRITE,写完后关闭文件。Top

7 楼BlueSea_W(海)回复于 2000-12-01 23:43:00 得分 0

    我不大赞成用汇编,因为我曾在Dll中调用用汇编编写的测试打印机函数,但调用几次后出现地址错,死机!  
   
  Top

8 楼luyuhai(大海)回复于 2000-12-02 18:22:00 得分 70

我不大赞成用汇编,因为在NT和2000下无法使用,但找不出别的方法,API函数试过,搞不定。汇编的方法如下:  
  //从并行端口读取打印机状态  
  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;  
  Top

9 楼hsh()回复于 2000-12-09 12:35:00 得分 0

error_code   出错(Lq-300k)Top

10 楼hsh()回复于 2000-12-12 19:01:00 得分 0

错误码与实测结果不符为什么请指教。(LQ-300k)Top

11 楼wyj()回复于 2001-03-01 21:21:00 得分 0

不必那么麻烦吧?  
  可以把打印机端口当成COM口一样的来操作,直接读写!Top

相关问题

  • 如何检测联在串口或并口上的打印机的状态,例如状态忙,缺纸等
  • 检测打印机的端口地址
  • 如何检测是否有打印机?
  • 怎样检测存在的打印机?
  • 检测打印机的问题
  • 怎样判断打印机的状态
  • 在WIN2000下面,并口打印机怎么实现取打印机的状态
  • 如何在DelPhi 4 中检测打印机是否存在??SOS
  • 怎样检测打印机是否存在????
  • 请问,怎样检测计算机有没装打印机?

关键词

  • 汇编
  • 检测
  • 打印
  • 文件
  • 内容
  • 打印机
  • lq
  • 出错
  • 状态
  • temp

得分解答快速导航

  • 帖主:hsh
  • luyuhai

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo