Главная страница
    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.031 c
14-1088775853
Шоломицкий
2004-07-02 17:44
2004.07.25
Хочу просто совет...


3-1088685364
Ceval
2004-07-01 16:36
2004.07.25
Подскажите как с помощью ADOTable связать две таблицы ?


3-1088676154
BiSido
2004-07-01 14:02
2004.07.25
Как изменить тип поля в БД програмно?


1-1089347341
Mim1
2004-07-09 08:29
2004.07.25
Обработка CLX сообщений


8-1084047654
ser_ega
2004-05-09 00:20
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский