Проблема С тихой печатью в Adobe Reader DC в c # через Windows Task Scheduler - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь распечатать PDF-документы из консольной программы на C #, которые мне нужно автоматизировать.Он работает нормально, если я запускаю его вручную, но если я использую планировщик задач Windows 10, он не работает.Я вижу Adobe Reader, запущенный в диспетчере задач, но он не распечатывает и не пытается распечатать.Никаких ошибок не происходит, он просто открывает Adobe, а затем закрывает его через 10 секунд, как и предполагалось.Это не размер файлов, так как все работает отлично, если выполняется прямо на рабочем столе.Раньше он работал нормально, но, по-видимому, перестал работать с тех пор, как было установлено обновление функции до Windows 10, версия 1803, хотя, я думаю, это также могло быть и обновление Adobe Reader.Когда-то это работало, окно Adobe раньше появлялось на экране и исчезало (что не было проблемой), и теперь, поскольку эти обновления все полностью скрыты, но он запускается!Очевидно, что отладка невозможна, поскольку она выполняется только в планировщике заданий, и похоже, что она работает отдельно от фактического бита печати. ​​

Код c # в значительной степени является стандартным способом печати в Adobe:

public static Boolean PrintPDFs(string pdfFileName)
    {
        try
        {
            Process proc = new Process();
            proc.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
            proc.StartInfo.Verb = "print";

            proc.StartInfo.FileName = System.Configuration.ConfigurationManager.AppSettings["Adobe_Path"];
            proc.StartInfo.Arguments = String.Format(@"/o /p /h ""{0}""", pdfFileName);
            proc.StartInfo.UseShellExecute = false;
            proc.StartInfo.CreateNoWindow = false;
            proc.EnableRaisingEvents = true;
            proc.Start();
            if (proc.HasExited == false)
            {
                proc.WaitForExit(10000);
            }
            proc.Close();
            //Abobe sometimes hangs around so we kill it!
            KillAdobe("AcroRd32");
            return true;
        }
        catch (Exception ex)
        {
            Log.WriteLog(ex.Message);
            return false;
        }
    }

У кого-нибудь есть идеи, как заставить это работать, когда это запланировано в планировщике задач?Я запускаю планировщик заданий в учетной записи администратора с высшими привилегиями.

Спасибо

Дейв

1 Ответ

0 голосов
/ 17 мая 2018

Я исправил это сам.Для тех, кто интересуется в основном планировщиком заданий, я установил «Запускать независимо от того, вошел ли пользователь в систему». Я изменил это на «Запускать только при входе пользователя», и все снова заработало.

...