监测打印机(20分)

  • 主题发起人 主题发起人 Ming618
  • 开始时间 开始时间
M

Ming618

Unregistered / Unconfirmed
GUEST, unregistred user!
请问如何监测打印机(无论是wps或word,只要点打印,即给出提示)
 
能不能清楚点?
 
我想编一个程序,系统起动后,监测打印机状态,如果有程序命令打印机打印,立即弹出对话框,请高手们支招,谢谢!
 
弹出对话框后,打印暂停,输入密码后继续打印,请高手指点
 
我也想有一个,但不会做,热切期待!!
 
up..高手过过招吧..
 
打印机状态检测

可用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;
 
请问上面的方法对Usb接口的打印有无效果
 
kirinma
在IN AL,DX;这句老是报错.是不是nt下不能调用端口?
Ming618
你可以看一下http://www.delphibbs.com/delphibbs/dispq.asp?lid=232399
只是我在测试的时候,每次得到的STATUS都是0,希望那位再解释一下.
 
NT下不允许直接访问硬件端口。
 
如果检测到正在打印,如何暂停打印呢?
 
message WM_SPOOLERSTATUS;
 
我也相对打印机进行监测,但不知道怎么做,很想学学啊
 
后退
顶部