目標はトピックで言った通りです。その特定の問題に関する記事がたくさんあることを知っており、それらのほとんどすべてを試しました。しかし、それらのどれもうまくいかなかったので、多くのことが印刷されているにもかかわらず、なぜこれが時々機能し、時には何も起こらないのかを見つけようとしています. これは、ジョブが印刷されるのを待って、それについて教えてくれる私のコードです。これ以上何もない。
private void StartMonitor()
{
try
{
var opt = new ConnectionOptions { EnablePrivileges = true };
var scope = new ManagementScope("root\\CIMV2", opt);
scope.Connect();
var query = new WqlEventQuery("SELECT * FROM __InstanceOperationEvent WITHIN 60 WHERE TargetInstance ISA \"Win32_PrintJob\"");
var watcher = new ManagementEventWatcher(query);
Console.WriteLine("Ready to receive Printer Job events...");
var pjEvent = watcher.WaitForNextEvent();
if (pjEvent != null) Console.WriteLine("Event occured: " + pjEvent.Properties["PagesPrinted"]);
}
catch (ManagementException e)
{
Console.WriteLine(e.StackTrace);
Console.WriteLine(e.ErrorCode);
Console.WriteLine(e.ErrorInformation);
_Error = e.Message;
throw;
}
}