![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Всем привет.
Есть виндовый сервис, написанный на 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 такой проблемы не возникает. Может кто-то уже видел такое? Заранее спасибо! |
#2
|
|||
|
|||
![]() Эм-м-м... возможно, проблема в том, чо XPS принтер при печати на него спрашивает у пользователя имя файла, а начиная, если я правильно помню, с Вынь7 сервис не имеет доступа к GUI. Попробуй печатать на какой-нить физический принтер.
|
#3
|
|||
|
|||
![]() Спасибо за ответ @lmikle.
Да, проблема именно в этом. Мелкософт говорит, что это не секъюрно. Просто я думал, что можно как-то это обойти. Кстати, есть ещё вот такая штука, но она не помогает: ![]() |
#4
|
|||
|
|||
![]() Не, эта галка не работает в последних виндах. Оставлена, видимо, просто для совместимости для старых сервисов.
|