Назад | Перейти на главную страницу

Печать на PDF-принтере через планировщик задач, проблема с изоляцией сеанса 0

У меня есть очень старое 32-битное приложение Delphi, которое создает штрих-коды, QR-коды и некоторые рисунки, объединяет их и распечатывает на реальном бумажном принтере. Программа запускается каждый час и запускается планировщиком задач Windows. Это приложение работало годами.

Теперь я хочу распечатать результат не на бумажном принтере, а на принтере PDF. Пока я запускаю приложение самостоятельно, все работает, в том числе при запуске Планировщика заданий, щелкнув по нему. Но если я не авторизован и приложение запускается из планировщика задач, печать не работает. Ошибок в работе нет.

Я знаю, что эта проблема связана с изоляцией сеанса 0. Задание из планировщика задач запускается в сеансе 0, когда пользовательский интерфейс недоступен. Поэтому задание печати на PDF-принтер не работает (потому что для PDF-принтера требуется пользовательский интерфейс).

Я пробовал различные PDF-принтеры, например. Foxit, NovaPDF, PDF24, 7-PDF, NitroPDF, BioPDF и т. Д.), Но ни один из них не работал.

Несколько недель назад я нашел обходной путь, в котором говорится, что мне нужно создать (пустую) папку «C: \ Windows \ SysWOW64 \ config \ systemprofile \ Desktop».

После этого я мог распечатать PDF-файлы до прошлой недели.

С прошлой недели это обходное решение больше не работает. Понятия не имею, почему. Я читал, что Microsoft внесла некоторые обновления в Windows и изоляцию сеанса 0, но эти обновления не установлены (все еще работают на Windows Server 2016).

Я также обновил реестр, основываясь на этой статье: https://support.microsoft.com/en-us/help/184291/com-objects-fail-to-print-when-called-from-asp

Есть ли способ снова сделать возможным создание PDF-файла с PDF-принтера через планировщик задач? Понятия не имею, что я могу сделать для достижения этой цели.

Спасибо за помощь!