Я пытаюсь распечатать 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;
}
}
У кого-нибудь есть идеи, как заставить это работать, когда это запланировано в планировщике задач?Я запускаю планировщик заданий в учетной записи администратора с высшими привилегиями.
Спасибо
Дейв