通过 Windows Task Scheduler 在 c# 中静默打印到 Adobe Reader DC 的问题
Issue With silent printing to Adobe Reader DC in c# via Windows Task Scheduler
我正在尝试从需要自动化的 C# 控制台程序打印 pdf 文档。如果我手动 运行 它工作正常,但如果我使用 Windows 10 任务计划程序,它就不起作用。我看到 Adobe Reader 在任务管理器中启动,但它不打印或尝试打印。没有发生错误,它只是打开 adobe,然后在 10 秒后按预期关闭它。它与文件的大小无关,因为如果直接在桌面上执行,一切都会完美无缺。它曾经工作正常,但自从安装了 Windows 10 版本 1803 的功能更新后似乎已停止工作,尽管我猜它也可能是 Adobe Reader 更新。当它过去工作时,Adobe window 曾经出现在屏幕上然后消失(这不是问题),现在由于这些更新,一切都完全隐藏了,但它正在启动!显然无法调试,因为它仅在 Task Scheduler 中,而且看起来它与实际打印位分开工作。
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;
}
}
有人知道如何在任务计划程序下安排时让它工作吗?我在具有最高权限的管理员用户帐户中 运行ning 任务计划程序。
谢谢
戴夫
我自己修好了。对于基本上对 Task Scheduler 感兴趣的任何人,我将其设置为 "Run whether the user is logged on or not" 我将其更改为 "Run Only when the user is logged on" 并且一切都重新开始工作。
我正在尝试从需要自动化的 C# 控制台程序打印 pdf 文档。如果我手动 运行 它工作正常,但如果我使用 Windows 10 任务计划程序,它就不起作用。我看到 Adobe Reader 在任务管理器中启动,但它不打印或尝试打印。没有发生错误,它只是打开 adobe,然后在 10 秒后按预期关闭它。它与文件的大小无关,因为如果直接在桌面上执行,一切都会完美无缺。它曾经工作正常,但自从安装了 Windows 10 版本 1803 的功能更新后似乎已停止工作,尽管我猜它也可能是 Adobe Reader 更新。当它过去工作时,Adobe window 曾经出现在屏幕上然后消失(这不是问题),现在由于这些更新,一切都完全隐藏了,但它正在启动!显然无法调试,因为它仅在 Task Scheduler 中,而且看起来它与实际打印位分开工作。
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;
}
}
有人知道如何在任务计划程序下安排时让它工作吗?我在具有最高权限的管理员用户帐户中 运行ning 任务计划程序。
谢谢
戴夫
我自己修好了。对于基本上对 Task Scheduler 感兴趣的任何人,我将其设置为 "Run whether the user is logged on or not" 我将其更改为 "Run Only when the user is logged on" 并且一切都重新开始工作。