摘要载入中… 请稍等…
内容载入中… 请稍等…
| ◎→ | 本类最新 |
|
在Delphi中实现数据分析模块的动 在Delphi中控制扫描仪 在DELPHI文本和图形的打印 用好Delphi的打印技能的编程技巧 自定义报表打印预览窗口 |
|
| ◎→相关资源 | |
| C语言入门视频教程 C#编程WinForm入门视频 Asp.net入门视频教程下载 VC++编程视频教程下载 VB窗体文章 HTML入门教程 Deiphi实例教程 Deiphi窗体文章 Deiphi数据库编程 Deiphi网络编程 Deiphi图形图象文章 Deiphi系统文件 | |
| ◎→ | 热门资源 |
| 反查漢字拼音 防止多个实例公用程序 防止关闭windows 放置任意的文件到Delphi的EXE文件 改变文件的属性 给MDI主窗口加背景 给控件添加OnMouseLeave事件 |
|
在有些情况下,需要获取打印机队列的状态信息,可以通过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 系统中的“控制面板”打开打印机管理器验证运行结果。
| 芯友网版权所有 1999-2006 | 著作权与商标声明 | 法律声明 | 服务条款 | 隐私声明 | 联系我们 |