最近在做一个系统监控工具。为此,我需要一个类来监视打印作业。
比如打印什么时候开始,是否成功,打印了多少页。
我知道我可以使用winspool.drv 来做到这一点。但不知道如何。我进行了广泛的搜索,但没有运气。任何代码/建议都可能非常有帮助。
谢谢。
嗯,我不知道winspool.drv,但您可以使用WMI 来获取打印机的状态。这是一个使用的示例Win32_打印机.
PrintDialog pd = new PrintDialog();
pd.ShowDialog();
PrintDoc.PrinterSettings = pd.PrinterSettings;
PrintDoc.PrintPage += new PrintPageEventHandler(PrintDoc_PrintPage);
PrintDoc.Print();
object status = Convert.ToUInt32(9999);
while ((uint)status != 0) // 0 being idle
{
ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from Win32_Printer where Name='" + pd.PrinterSettings.PrinterName + "'");
foreach (ManagementObject service in mos.Get())
{
status = service.Properties["PrinterState"].Value;
Thread.Sleep(50);
}
}
如果您不使用 PrintDialog 对象(选择打印机),您可以运行 WMI 查询,它将返回系统中的所有打印机。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)