Всем привет.
Есть виндовый сервис, написанный на Delphi 2006. Крутится он на Windows 10.
Этот сервис считывает PrintJob'ы из БД и отправляет на печать.
Пытаюсь отправить на локальный виндовый виртуальный принтер, например Microsoft XPS Document Writer.
Реализовано это через стандартный TPrinter.
Вот простой демо код:
Код:
Printer.PrinterIndex := PrinterIdx;
Printer.Title := 'My simple title';
Printer.Orientation := poPortrait;
Printer.BeginDoc; //---> freez
На этапе выполнения указанной строки сервис виснет.
Происходит это после выполнения WinAPI функции StartDoc.
Вот, что имею на выхлопе:
Код:
Debug Output: internal\onecoreuapshell\private\inc\tabletmodehelpers.h(48)\explorerframe.dll!50CF9E85: (caller: 50CF9F01) ReturnHr(1) tid(2dbc) 80070005 Access is denied.
Если я раню этот код в VCL приложении, данной ошибки не возникает.
Причина в доступе, только не пойму к чему - сервис пробовал запускать и из под юзера из группы администраторов и из под Local System.
Права для конретного принтера тоже всем раздал.
На Windows 7 такой проблемы не возникает.
Может кто-то уже видел такое?
Заранее спасибо!