获取打印机队列的状态信息
点击次数:73 次 发布日期:2008-11-09 08:39:22 作者:源代码网
|
源代码网推荐 源代码网推荐 1) 通过菜单File | New Application 创建一个新的工程。 源代码网推荐 2) 在窗体Form1中添加一个Button组件和一个Memo组件,进行相关属性的设置。 源代码网推荐 3) 添加Button1组件的OnClick事件的处理过程如下: 源代码网推荐 源代码网推荐 procedure TForm1.Button1Click(Sender: TO b j e c t ) ; 源代码网推荐 var 源代码网推荐 LPHandle: THandle; // 打印机句柄 源代码网推荐 LPStrBuf: Array [0..256] of Char; // 打印机名称 源代码网推荐 NoJobs:Word; // 希望获取的作业数 源代码网推荐 s:LongWord; // Job_Info 的字节数 源代码网推荐 Job_Info: array[0..10] of JOB_INFO_1; // 打印队列信息 源代码网推荐 cbNeeded:Cardinal; 源代码网推荐 cReturned:Cardinal; // 返回的作业数 源代码网推荐 ret:LongBool; 源代码网推荐 I:Integer; 源代码网推荐 begin 源代码网推荐 LPStrBuf:="HP LaserJet III"; // 指定打印机名称 源代码网推荐 // 打开打印机 源代码网推荐 if (OpenPrinter(LPStrBuf,LPHandle,nil)=False) then 源代码网推荐 begin 源代码网推荐 MessageBox(Form1.Handle,"打开打印机失败。","信息" , MB_OK); 源代码网推荐 Exit; // 退出 源代码网推荐 end ; 源代码网推荐 s:= Sizeof(Job_Info); 源代码网推荐 cbNeeded:=0; 源代码网推荐 cReturned:=0; 源代码网推荐 NoJobs:=10 ; 源代码网推荐 ret:= EnumJobs(LPHandle,0 ,NoJobs,1,@Job_Info,s,cbNeeded,cReturned); 源代码网推荐 // 显示打印队列信息 源代码网推荐 Memo1.Lines.Add("共有打印任务:" IntToStr(cReturned) "个"); 源代码网推荐 for I:=0 to cReturned-1 do 源代码网推荐 Memo1.Lines.Add( "第" IntToStr(I 1) " 个打印任务有" IntToStr(Job_Info[I].TotalPages) "页。"); 源代码网推荐 end; 源代码网推荐 4) 编译、链接和运行程序,测试效果。 源代码网推荐 说明: 源代码网推荐 · 在进行测试的时候,应根据系统中安装的打印机设置LPStrBuf的数值。 源代码网推荐 · 可以通过Wi n d o w s 系统中的“控制面板”打开打印机管理器验证运行结果。 源代码网推荐 源代码网供稿. |
