Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.026 c
14-1088889770
ИМХО
2004-07-04 01:22
2004.07.25
Марлон Брандо скончался


1-1089721678
Alibaba
2004-07-13 16:27
2004.07.25
Excel Макрос


8-1084036343
Ilya
2004-05-08 21:12
2004.07.25
Windows.Beep() Не звучит


14-1088853395
menart
2004-07-03 15:16
2004.07.25
Опять суббота!


1-1089266877
EvgeniyR
2004-07-08 10:07
2004.07.25
Форматированный текс





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский