首页 > 编程语言 >c#获取惠普打印机状态

c#获取惠普打印机状态

时间:2024-08-01 15:09:28浏览次数:14  
标签:状态 打印机 return c# 惠普 content 获取 HtmlWeb

最近遇到一个项目,由于客户指定了打印机型号:HP LaserJet Pro M501n ,本来想着参考网上的代码,使用System.Management来实现对打印机状态的查询,测试过程中发现无论是缺纸、空闲,获取到的统统都是空闲状态,咨询售后也是说无法获取状态,也不提供SDK;后面在社区看见可以通过网页访问打印机状态,输入IP即可,索性试了下,页面如下图:

 

从图上可以看到有打印机当前的状态为【已打开睡眠模式】,其他状态例如缺纸也测试过,是可以正常显示的,所以想着能通过网页访问的方式,找到对应元素下面的内容,

通过后台

代码如下:

   using HtmlAgilityPack;

   public static bool GetWebPageContent(string url)
        {
            try
            {
                // 创建 HtmlWeb 实例
                HtmlWeb web = new HtmlWeb();
                // 加载网页内容
                HtmlDocument doc = web.Load(url);
                // 查找指定 <td> 标签下 id 为 deviceStatus_tableCell 的内容
                HtmlNode node = doc.DocumentNode.SelectSingleNode("//td[@id='deviceStatus_tableCell']");
                if (node != null)
                {
                    string content = node.InnerText.Trim();
                    if (content.Contains("\n"))
                    {
                        int lastIndex = content.IndexOf("\n");
                        content = content.Substring(0, lastIndex).Trim();
                    }
                  //根据每种状态自行判断该如何执行业务............

                    return true;
                }
                else
                {
                    return false; 
                }
            }
            catch (Exception e) 
            {
                //MessageBox.Show($"解析HTML时发生错误: {e.Message}");
                return false;
            }

        }

运行代码可以看到获取到了状态内容,如图:

这样也算是实现了获取打印机状态了。

 

标签:状态,打印机,return,c#,惠普,content,获取,HtmlWeb
From: https://www.cnblogs.com/fmclong/p/18336693

相关文章

  • 利用Curl命令来发邮件的小工具
    一个利用curl来发送邮件的小工具其实可以扩展出很多其它玩法例如:配合系统定时任务做系统状态监控,当满足一定条件自动发送邮件或者和笔者一样,每次加班后懒得编辑邮件,就可以直接传入相应的参数来发邮件或者...其它可能需要发邮件的场景字段解释USER:邮箱帐号名称及密码,中......
  • C++11 中的 python 海象运算符 (:=) 等效吗?
    最近我在Python中经常使用:=运算符,这样:ifmy_object:=SomeClass.function_that_returns_object():#dosomethingwiththisobjectifitexistsprint(my_object.some_attribute)问题有没有办法在c++11中做到这一点而不使用stdlib?例如......
  • 1003 Emergency
    Asanemergencyrescueteamleaderofacity,youaregivenaspecialmapofyourcountry.Themapshowsseveralscatteredcitiesconnectedbysomeroads.Amountofrescueteamsineachcityandthelengthofeachroadbetweenanypairofcitiesaremarke......
  • Jenkins 远程触发 403 No valid crumb was included in the request
    Jenkins远程触发403Novalidcrumbwasincludedintherequest Jenkins使用curl执行远程触发命令,会报403错误打开如下图  系统管理-》scriptConsole在下面脚本命令行中输入hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=tr......
  • 《DNK210使用指南 -CanMV版 V1.0》第十六章 machine模块实验
    第十六章machine模块实验1)实验平台:正点原子DNK210开发板2)章节摘自【正点原子】DNK210使用指南-CanMV版V1.03)购买链接:https://detail.tmall.com/item.htm?&id=7828013987504)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/k210/ATK-DNK210.html5)正点......
  • [Typescript] Excess Properties in Functions
    interfaceUser{id:number;name:string;}constusers=[{name:'Waqas',},{name:'Zain',},];constusersWithIds:User[]=users.map((user,index)=>({...user,id:index,//@ts-expect-error......
  • 洛谷题单指南-前缀和差分与离散化-P4552 [Poetize6] IncDec Sequence
    原题链接:https://www.luogu.com.cn/problem/P4552题意解读:对一组数字序列,进行若干次区间+1或者-1操作,最终使得所有数字一样,计算最少的操作次数,以及能得到多少种不同序列。解题思路:要使得序列每一个数字都相同,则其差分除了第一项之外其余项都是0。因此,问题转化为:给定一个差分数......
  • Ubuntu20.04.2安装Cockpit通过web管理系统
    目录什么是Cockpit安装启用&设为自动启动Wiki什么是CockpitCockpit是一个简单易用的Web界面,让用户可以通过浏览器管理Linux服务器,支持系统监控、存储管理、网络配置和日志查看等,适合初学者和希望简化管理流程的系统管理员。安装使用aptinstallcockpit开始安装root@wiregua......
  • Android 10.0 第三方app授予DeviceOwner权限调用系统reboot,显示隐藏app,锁屏,禁用app
    1.前言 在10.0的系统rom定制化开发中,在有些客户开发app的功能中,需要系统授予app的DeviceOwner权限,然后app就可以实现重启关机禁用下拉通知栏,显示隐藏app,等功能,首选需要在app和framework中配置相关功能,接下来具体分析相关功能的实现2.第三方app授予DeviceOwner权限调用系......
  • 超简单!vue3+vant4+pinia+vue-router+mockjs移动端实现水果商城项目【原创】
    ......