超级难题:Printer对象的打印问题

angshuangxi 2001-06-06 03:55:00
我用printer对象做了一个动态报表程序,可是,当printer.BeginDoc时,如果打印机正在使用,则会报错,请问怎么检测打印机正在使用并让该打印任务进入打印队列,最好是原代码
...全文
85 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Asus 2001-06-06
  • 打赏
  • 举报
回复
我也是网络打印机,没报错啊
angshuangxi 2001-06-06
  • 打赏
  • 举报
回复
to Asus(风月无边) 
在 IN AL,DX; 时 报错 :Privileged instruction
我用的是网络打印机
angshuangxi 2001-06-06
  • 打赏
  • 举报
回复
那如果打印机忙怎么办,可不可以将它放入打印队列
Asus 2001-06-06
  • 打赏
  • 举报
回复
可用CREATEFILE以PRN为文件名生成一个文件,检测返回值,若成功则打印机可用,否则显示打印机故障。生成关于PRN的文件句柄后,可象普通文件一样向文件写入内容,比如WRITE,写完后关闭文件。
//从并行端口读取打印机状态
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;


5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧