经常打印时打印没有反应,需要重启打印服务,求一段c#代码,重启打印服务,请尽量详细。谢谢!打印
解决方案 »
- C# 网络通信
- 关于这个转换xml文件
- 通过控件生成的一幅图,想打印出来,请前辈指点!小弟先感谢了!
- 关于vs2005 C#与db2数据库连接问题
- 关于控件问题(在线等待):
- 请问:分布式情况下的datable如何保存?
- 关于多线程的问题
- 如何修改远程PC的系统时间
- 未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中。这是什么错误啊
- 有用 C#.NET + MS SQL SERVER 开发WEB APPLICATION的朋友吗? 好想认识你, 进来共商创业大计!
- 关于键值对遇到的问题
- 求解 感谢此论坛 并能够讲解DataAdapter数据适配器实例问题 这个不明白
找到打印机服务名,参考上面连接做
新建个记事本,保存成bat文件。
sc stop Spooler
sc start Spooler
/// <summary>
/// 重启服务,每次尝试间隔一秒,返回是否成功
/// </summary>
/// <param name="serviceName">服务名</param>
/// <param name="attempts">尝试次数</param>
public static bool RestartService(string serviceName, int attempts)
{
using (var service = new ServiceController(serviceName))
{
if (service.Status != ServiceControllerStatus.Stopped)
{
if(service.Status == ServiceControllerStatus.StopPending)
{
System.Threading.Thread.Sleep(1500);
}
else
{
service.Stop();
}
}
for (int i = 0; i < attempts; i++)
{
service.Refresh();
try
{
if (service.Status != ServiceControllerStatus.Running && service.Status != ServiceControllerStatus.StartPending) service.Start();
return true;
}
catch
{
System.Threading.Thread.Sleep(1000);
}
return true;
}
}
//"Had tried 3 times to start service, but still failed");
return false;
}RestartService("Spooler", 3);
错误 2 找不到类型或命名空间名称“ServiceController”(是否缺少 using 指令或程序集引用?)
错误 3 当前上下文中不存在名称“ServiceControllerStatus”