当前位置:首页 > 网络编程 > 软件语言 > DELPHI > 获取打印机队列的状态信息

获取打印机队列的状态信息

点击次数:73 次 发布日期:2008-11-09 08:39:22 作者:源代码网
源代码网推荐
广告载入中
在有些情况下,需要获取打印机队列的状态信息,可以通过Windows API 函数EnumJobs来获取打印机队列的状态信息。下面例程获取打印机队列的状态信息进行了说明。
源代码网推荐
源代码网推荐 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 系统中的“控制面板”打开打印机管理器验证运行结果。


源代码网推荐

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华