GetInstalledPrinters

From SunFlurry wiki
Jump to: navigation, search
  GetInstalledPrinters (Функции среды)
Объект:Функции общего назначения
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Визуальность:Нет

Функция получает список текущих принтеров системы. Значениями списка будут строки с наименованиями принтеров, имена списка будут представлены в виде <Имя сервера>@<Атрибуты>@<Имя принтера>. <Атрибуты> представляют собой следующую битовую маску:

  • бит 1 (1) -- принтер использует очередь печати (PRINTER_ATTRIBUTE_QUEUED)
  • бит 2 (2) -- принтер не использует очередь печати (PRINTER_ATTRIBUTE_DIRECT)
  • бит 3 (4) -- принтер используется по умолчанию (PRINTER_ATTRIBUTE_DEFAULT) -- в данной функции этот бит не всегда установлен, рекомендуется использовать функцию GetDefaultPrinter
  • бит 4 (8) -- для принтера активирован общий доступ (PRINTER_ATTRIBUTE_SHARED)
  • бит 5 (16) -- принтер является сетевым (PRINTER_ATTRIBUTE_NETWORK)
  • бит 6 (32) -- принтер скрыт (PRINTER_ATTRIBUTE_HIDDEN)
  • бит 7 (64) -- принтер является локальным (PRINTER_ATTRIBUTE_LOCAL)

Если принтер является локальным, <Имя сервера> будет пустым. Время выполнения этой функции может быть продолжительным, в случае, когда некоторые принтеры установлены неверно.

Синтаксис

GetInstalledPrinters():<Список принтеров системы (LIST)>

Возвращаемое значение

Функция возвращает список.

Примеры

//ОснПринтер -- визуальное поле со списком для выбора принтера
ОснПринтер:=Form.ОснПринтер.Value;
ОснПринтер.Clear();
ОснПринтер.Add("Не выбран");

ПринтерПоУмолчанию:=Trim(GetDefaultPrinter());
//По умолчанию выбирать первый элемент ("не выбран")
Тек:=1;
aList:=GetInstalledPrinters();
For i:=1 To aList.Size() Do
  ОснПринтер.Add(aList.Get(i));
  If Trim(aList.Get(i))=ПринтерПоУмолчанию Then
    Тек:=ОснПринтер.Size();
  EndIf;
EndDo;
  
ОснПринтер.SelectedLine:=Тек;