近日用到 System.Printing 命名空间下的PrintQueue 类来判断打印机状态,当检测到打印机出现类似缺纸张,缺墨等状态时候,需要删除打印队列中的所有打印作业PrintQueue.Purge() //移除打印队列中的所有作业
执行到此就报错:清除队列时发生异常,win32错误 拒绝访问代码如下:..........
..........
//发送打印任务
PrintServer myPS = new PrintServer();//获取本机安装的所有打印机
PrintQueueCollection myPrintQueues = myPS.GetPrintQueues();
foreach (PrintQueue pq in myPrintQueues)
{
pq.Refresh();
if (pq.IsOffline)
{
this.label1.Text = "打印机脱机,请联系维护人员!";
pq.Purge();
}
if (pq.IsOutOfPaper)
{
this.label1.Text = "打印机缺纸,请联系维护人员!";
pq.Purge();
}
if (pq.IsPaused)
{
this.label1.Text = "打印机暂停,请联系维护人员!";
pq.Purge();
}
if (pq.IsNotAvailable)
{
this.label1.Text = "打印机不可用,请联系维护人员!";
pq.Purge();
}
if (pq.IsInError)
{
this.label1.Text = "打印机设备出错,请联系维护人员!";
pq.Purge();
}
if (pq.IsTonerLow)
{
this.label1.Text = "打印机缺少墨粉,请联系维护人员!";
pq.Purge();
}
if (pq.IsPaperJammed)
{ this.label1.Text = "打印机夹纸,请联系维护人员!";
pq.Purge();
}
}
请高手指教!!谢谢各位
执行到此就报错:清除队列时发生异常,win32错误 拒绝访问代码如下:..........
..........
//发送打印任务
PrintServer myPS = new PrintServer();//获取本机安装的所有打印机
PrintQueueCollection myPrintQueues = myPS.GetPrintQueues();
foreach (PrintQueue pq in myPrintQueues)
{
pq.Refresh();
if (pq.IsOffline)
{
this.label1.Text = "打印机脱机,请联系维护人员!";
pq.Purge();
}
if (pq.IsOutOfPaper)
{
this.label1.Text = "打印机缺纸,请联系维护人员!";
pq.Purge();
}
if (pq.IsPaused)
{
this.label1.Text = "打印机暂停,请联系维护人员!";
pq.Purge();
}
if (pq.IsNotAvailable)
{
this.label1.Text = "打印机不可用,请联系维护人员!";
pq.Purge();
}
if (pq.IsInError)
{
this.label1.Text = "打印机设备出错,请联系维护人员!";
pq.Purge();
}
if (pq.IsTonerLow)
{
this.label1.Text = "打印机缺少墨粉,请联系维护人员!";
pq.Purge();
}
if (pq.IsPaperJammed)
{ this.label1.Text = "打印机夹纸,请联系维护人员!";
pq.Purge();
}
}
请高手指教!!谢谢各位
PrintQueue.Purge 方法 的异常说明PrintSystemException :有些打印作业未能从队列中移除。是有些作业移除不了 而报错 “清除队列时发生异常,win32错误 拒绝访问”