![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить имя принтера, установленного в системе по умолчанию? [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]