По сути, это самое близкое, что я мог найти для этого. Если, в основном, требуется, чтобы задание на печать появилось с определенным именем задания, а затем отмените это задание.
Технически, хотя, я думаю, что ответ на мой квест - нет, так как я спросил, могу ли я сделать это по процессу. Хотя ниже подходит близко. Он просто распечатывает задания, которые выполняются, и отменяет любое задание на печать, в заголовке которого указано MS Outlook. Что касается словаря, он просто не дает перечислять одни и те же задания несколько раз.
Imports System.Printing
Module Module1
Sub Main()
Using ps As New PrintServer("\\server")
Using Pq = ps.GetPrintQueue("printer")
Dim DetectedJobs As New Dictionary(Of DateTime, String)
Do
Dim Pj = Pq.GetPrintJobInfoCollection
For Each job In Pj
If Not (DetectedJobs.ContainsKey(job.TimeJobSubmitted) AndAlso DetectedJobs(job.TimeJobSubmitted) = job.Name) Then
DetectedJobs.Add(job.TimeJobSubmitted, job.Name)
Console.WriteLine(job.Name & "," & job.JobIdentifier & "," & job.TimeJobSubmitted)
End If
If job.Name.Contains("Microsoft Office Outlook") Then
job.Cancel()
Console.WriteLine(job.Name & "," & job.JobIdentifier & "," & job.TimeJobSubmitted & " - Cancelled")
End If
job.Dispose()
Next
Pj.Dispose()
Threading.Thread.Sleep("200")
Loop
End Using
End Using
Console.ReadKey()
End Sub
End Module