繁体   English   中英

阅读最新的事件日志详细信息

[英]Reading latest event log details

因此,我一直在通过事件日志监视我的打印作业,并且效果很好,现在我想获取要打印的份数,但问题是它读取的是最旧的事件日志,而不是最新的事件日志。

private void checkCopies()
    {
        EventLogQuery logQuery = new EventLogQuery("Microsoft-Windows-PrintService/Operational", PathType.LogName, "*[System[(EventID = 805)]]");
        EventLogWatcher logWatcher = new EventLogWatcher(logQuery);
        EventLogReader logReader = new EventLogReader(logQuery);
        logWatcher.EventRecordWritten += new EventHandler<EventRecordWrittenEventArgs>(getCopies);
        logWatcher.Enabled = true;
    }
private void getCopies(Object obj, EventRecordWrittenEventArgs arg)
    {
        EventLogQuery logQuery = new EventLogQuery("Microsoft-Windows-PrintService/Operational", PathType.LogName, "*[System[(EventID = 805)]]");
        EventLogReader logReader = new EventLogReader(logQuery);
        EventRecord rec = logReader.ReadEvent();
        if (rec != null)
            totalCopies = rec.ToXml().ToString();
    }
private void getPrintedCopies()
    {
        Regex parts = new Regex(@"<Copies>(\d+)</Copies>");
        Match match = parts.Match(totalCopies);
        if (match.Success)
            copies = Convert.ToInt32(match.Groups[1].Value);
    }

我该如何做,以便改为读取最新日志?

好了,我通过清除PrintService的事件日志找到了某种解决方案,可以在这里找到:

如何以编程方式或定期清除Operational PrintService事件日志?

现在,我可以获取打印作业监视应用程序的份数和页数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM