⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.~pas

📁 Delphi实效编程百例的随书源代码 这是其中的操作系统部分
💻 ~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 + -