Форум: "WinAPI";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
ВнизКонтроль печати... Найти похожие ветки
← →
Dion (2004-06-08 16:10) [0]Люди, помогите разобраться.
Вот код
unit pr1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
ListBox1: TListBox;
ListBox2: TListBox;
Button1: TButton;
Label1: TLabel;
procedure FormActivate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
//type
var
Form1: TForm1;
implementation
uses WinSpool;
{$R *.dfm}
procedure TForm1.FormActivate(Sender: TObject);
type t=array [0..20] of PRINTER_INFO_2;
var pj:^t;
need, ret: DWord;
i: integer;
begin
//Pj:=AllocMem(SizeOf(pj));
EnumPrinters(PRINTER_ENUM_CONNECTIONS or PRINTER_ENUM_LOCAL or PRINTER_ENUM_SHARED or PRINTER_ENUM_NETWORK , nil, 2, nil, 0, need, ret);
if need=0 then exit;
pj:=AllocMem(need );
if EnumPrinters(PRINTER_ENUM_CONNECTIONS or PRINTER_ENUM_LOCAL or PRINTER_ENUM_SHARED or PRINTER_ENUM_NETWORK , nil, 2, Pj, need, need, ret) then
// showmessage("find");
// showmessage(inttostr(need));
{ if EnumPrinters(PRINTER_ENUM_LOCAL , nil, 2, @Pj, sizeof(pj), need, ret)
then
} begin
//ShowMessage(inttostr(ret));
ListBox1.Clear;
for i := 0 to ret - 1 do
ListBox1.Items.Add(Pj[i].pPrinterName);
ListBox1.ItemIndex := 0;
Button1.Enabled := true;
end;
freemem(pj);
end;
procedure TForm1.Button1Click(Sender: TObject);
type t=array [0..20] of job_Info_2;
var ID: cardinal;
pj:^t;
dp:devmode;
d:LongInt;
need, ret: cardinal;
i,j: integer;
begin
OpenPrinter(PChar(ListBox1.Items[ListBox1.ItemIndex]), ID, nil);
EnumJobs(ID, 0, 20, 2, nil, 0, need, ret);
if need <> 0 then
begin
pj:=allocmem(need);
if EnumJobs(ID, 0, 20, 2, Pj, need, need, ret) then
begin
listBox2.Clear;
for i := 0 to ret - 1 do
begin
j:=Pj[i].pDevMode.dmCopies;
end;
end;
freemem(pj);
end;
ClosePrinter(ID);
end;
end.
Колличество листов он возвращает правильно. А как быть с колличеством копий...
При нажатии выдает 1, не зависимо от загнанных копий...
В чем трабла. не пойму, может кто-нить подскажет????
← →
YuRock © (2004-06-08 18:37) [1]А что ты понимаешь под фразой "загнанных копий"?
Кол-во копий задается при инициализации принтера, т.е. если одну страницу отправть на печать 12 раз, то кол-во копий не будет равно 12.
← →
Dion (2004-06-09 06:57) [2]Загнанных, это те, которые задаются в окне настроек печати документа... При распечатке (допустим) 1 страницы в 3 -х копиях...
Вот именно это и нужно отловить...
...т.е. если одну страницу отправть на печать 12 раз, то кол-во копий не будет равно 12.
- это уже другая история, здесь будут считаться задания...
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.031 c