我们经常遇到打印机连接障碍,让打印,但是作业卡在里面,打印不出来,右键点击也删除不了,还是一直在里面。(大卫亚设)。
那怎么解决呢。我们来看下手动处理方式,首先我们要关闭Print Spooler服务,然后进入C:\windows\System32\spool\PRINTERS,删除掉里面所有问题,然后在开启服务就可以了。
我们在c#里面把这个步骤完成,就可以实现一键删除了。
首先建两个方法,一个开启服务,一个关闭服务。
//启动服务
private static bool ServiceStart(string serviceName)
{
try
{
serviceController service = new ServiceController(serviceName);
if == ServiceCon)
{
return true;
}
else
{
TimeSpan timeout = TimeS(1000 * 10);
();
(ServiceCon, timeout);
}
}
catch
{
return false;
}
return true;
}
//停止服务
private bool StopService(string serviseName)
{
try
{
ServiceController service = new ServiceController(serviseName);
if == ServiceCon)
{
return true;
}
else
{
TimeSpan timeout = TimeS(1000 * 10);
();
(ServiceCon, timeout);
}
}
catch
{
return false;
}
return true;
}
方法写完了,在就是使用,给一个button写入。
private void button1_Click(object sender, EventArgs e)
{
try
{
if (StopService("Spooler"))
{
directoryInfo dir = new DirectoryInfo(@"C:\Windows\System32\spool\PRINTERS");
FileSystemInfo[] fileinfo = dir.GetFileSystemInfos(); //返回目录中所有文件和子目录
foreach (FileSystemInfo i in fileinfo)
{
if (i is DirectoryInfo) //判断是否文件夹
{
DirectoryInfo subdir = new DirectoryInfo);
(true); //删除子目录和文件
}
else
{
File.Delete); //删除指定文件
li);
}
}
}
else
{
Me("应用失败");
return;
}
if (ServiceStart("Spooler"))
{
}
else
{
Me("应用失败");
return;
}
Me("删除完成!");
}
catch (Exception)
{
Me("删除失败,请手动操作!");
}
}
至此,打印机任务就全部删除了,这个方法也可以应用于windows更新失败的解决方案,我也会持续更新。
1.《Csharp 编程-一键清除打印任务》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《Csharp 编程-一键清除打印任务》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/why/3066371.html