Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить имя принтера, установленного в системе по умолчанию? [D6, Win95/98, Win2k, WinXP]


Вован_ ©   (2004-01-19 11:53:00) 

Собственно вопрос в теме:)


Penal   (2004-01-20 11:17:00) [1]

Писалось давно, выдрано грубо, м.б. чегото не хватает
Заполняет листбокс списком принтеров и позиционирует его на используемом по умолчанию.

const MaxPrint = 20;
var
 Buf: array [0..MaxPrint] of TPrinterInfo5;
 ByteCnt, StructCnt: cardinal;
 i: integer;
begin
 EnumPrinters(PRINTER_ENUM_LOCAL , nil, 5, @Buf, SizeOf(Buf), ByteCnt, StructCnt);
 for i:=0 to StructCnt-1 do begin
   Lb.Items.Add(Buf[i].pPrinterName);
   If (Buf[i].Attributes and PRINTER_ATTRIBUTE_DEFAULT) = PRINTER_ATTRIBUTE_DEFAULT then begin
     Lb.ItemIndex:=i;
     cd:=i;
   end;
 end;
end;


YuRock   (2004-01-19 15:05:00) [2]

Ф-ция PrintDlg()


Anatoly Podgoretsky   (2004-01-19 14:37:00) [3]

Исходные тексты модуля доступны.


Dingo   (2004-01-19 14:30:00) [4]

а на чистом API?


Вован_   (2004-01-19 12:38:00) [5]

Ответ самому себе (часто ли так бывает:)?

1. Подключить unit Printers

2. Printer.Printers[Printer.PrinterIndex]


Наверх

Титульная страница Поиск, карта сайта Написать письмо