C# 未处理 System.Management.ManagementException HResult=-2146233087 Message=常规故障 Source=System.M

报错处代码:

public static bool GetPrinterStatus(string PrinterName, ref string strRet)
{
    //获取状态字符串,并用?作为分割符
    ManagementClass managementClass = new ManagementClass("Win32_Printer");
    ManagementObjectCollection managementObjectCollection = managementClass.GetInstances();
    foreach (ManagementObject managementObject in managementObjectCollection)
    {
        if (managementObject["Name"].ToString() == PrinterName)
        {
            string status = managementObject["PrinterStatus"].ToString();
            if (status == "3")
                return true;
            else if(status == "2")
            {
                strRet = "打印机不可用";
                return false;
            }
            else if (status == "7")
            {
                strRet = "打印机脱机,请重新连接";
                return false;
            }
            else
            {
                return true;
            }
        }
    }
    strRet = "没有发现打印机";
    return false;
}

报错内容:

未处理 System.Management.ManagementException
  HResult=-2146233087
  Message=常规故障 
  Source=System.Management
  StackTrace:
       在 System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
       在 System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext()
       在 DICOMPrintServer.PrinterController.GetPrinterStatus(String PrinterName, String& strRet)
       在 DICOMPrintServer.MainWindow.listenTaskListThreadBegin(Object pp)
       在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       在 System.Threading.ThreadHelper.ThreadStart(Object obj)
  InnerException: 
 

解决办法:

报上述错误一般是电脑打印服务已关闭;

重新开启即可

当电脑显示打印服务已关闭时,你可以按照以下步骤来解决问题:
1.检查打印机连接:确保打印机正确连接到电脑,并且电源已打开。检查USB线或网络连接是否松动或断开,如果是,请重新插入或连接。
2.重启打印机与电脑:有时简单的重启可以解决问题。先关闭打印机,然后关闭电脑。等待几分钟后再打开电脑和打印机。检查是否有任何错误消息或指示。
3.检查打印服务状态:按下Win+R键,打开运行对话框,输入“services.msc”,然后按回车键。在服务管理器中,找到“打印机排队服务”(Print Spooler)并确保其状态为“运行中”(Running)。如果状态是“停止”(Stopped),右键点击该服务,选择“启动”(Start)来重新启动服务。
4.清理打印队列:找到服务管理器中的“打印机排队服务”(Print Spooler),右键点击并选择“停止”(Stop)。然后,转到计算机的C:\Windows\System32\spool\PRINTERS目录下,删除所有文件。最后,再次右键点击“打印机排队服务”并选择“启动”(Start)。
需要注意的是,解决方法可能因操作系统和设备配置而有所不同。在尝试任何操作之前,最好备份重要文件,以防万一发生意外情况。

2d20ba098920468ea7edf408446ca840.webp

电脑打印服务已关闭怎么解决?

 

  • 25
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangnaisheng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值