我正在尝试在我们的本地网络中捕获提交给打印机的每个打印作业。我想显示作业的一些属性,例如作业名称、提交时间等。
我尝试了一个while循环,但它没有捕捉到我的打印作业,可能是因为它发生在线程休眠时。有我可以注册和处理的事件吗?我不想将所有 CPU 资源都用于无限循环地执行此任务。
我试过这个:
public static void WritePrinterJobs()
{
while (true)
{
foreach (var job in LocalPrintServer.GetDefaultPrintQueue().GetPrintJobInfoCollection())
{
Console.WriteLine(job.Submitter + " " + job.TimeJobSubmitted.ToShortDateString());
}
Thread.Sleep(100);
}
}
编辑: 上面的代码实际上是有效的,如果它对你有用,你不需要去低级,我的错误是没有正确配置默认打印机。