📄 unit1.~pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Printers, WinSpool;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
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;
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.text := '';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -