HOW TO:枚举网络所有打印机
Imports System.Management
Public Class HowToSearchPrinterClass HowToSearchPrinter
Public Shared Function NetPrinters()Function NetPrinters(ByVal GetWay As GetComputer) As String()
Dim mResult(-1) As String
Dim mPrinterFormat As String = "Computer:{0} Printer:{1}"
Dim mNetComputerNames(-1) As String
Select Case GetWay
Case GetComputer.Simple
mNetComputerNames = GetNetComputerNames()
Case GetComputer.Ping
mNetComputerNames = GetNetComputerNamesByPing()
End Select
For Each mComputer As String In mNetComputerNames
For Each mPrinter As String In GetPrinterName(mComputer)
ReDim Preserve mResult(mResult.Length)
mResult(mResult.Length - 1) = String.Format(mPrinterFormat, mComputer, mPrinter)
Next
Next
Return mResult
End Function
'这里不保证得到所有的计算机
Private Shared Function GetNetComputerNames()Function GetNetComputerNames() As String()
Dim mResult(-1) As String
Dim root As DirectoryEntry = New DirectoryEntry("WinNT:")
For Each Domain As DirectoryEntry In root.Children
'枚举工作组或域
For Each Computer As DirectoryEntry In Domain.Children
'枚举指定工作组或域的计算机
If Computer.SchemaClassName.Equals("Computer") Then
ReDim Preserve mResult(mResult.Length)
mResult(mResult.Length - 1) = Computer.Name
End If
Next
Next
Return mResult
End Function
'这倒是可以得到所有的计算机,可是也太慢了
Private Shared Function GetNetComputerNamesByPing()Function GetNetComputerNamesByPing() As String()
If Not My.Computer.Network.IsAvailable Then Return Nothing
Dim Result(-1) As String
Dim PingFormat As String = "192.168.0.{0}"
For i As Integer = 1 To 254
If My.Computer.Network.Ping(String.Format(PingFormat, i), 100) Then
ReDim Preserve Result(Result.Length)
Result(Result.Length - 1) = Net.Dns.GetHostEntry(String.Format(PingFormat, i)).HostName '这个方法是Net2.0
End If
Next
Return Result
End Function
Private Shared Function GetPrinterName()Function GetPrinterName(ByVal computerName As String) As String()
Dim mResult(-1) As String
Dim o As New ManagementObject
o.Scope = New ManagementScope(String.Format("//{0}/root/cimv2", computerName))
Dim mSearch As New ManagementObjectSearcher(String.Format("SELECT DeviceID FROM {0}", "Win32_Printer"))
mSearch.Scope = o.Scope
Try
For Each mManagementObject As ManagementObject In mSearch.Get()
ReDim Preserve mResult(mResult.Length)
mResult(mResult.Length - 1) = System.Text.RegularExpressions.Regex.Replace(mManagementObject.ToString, ".*""(.*)""", "${1}")
Next
Catch ex As Exception
Console.WriteLine(ex.Message)
Finally
mSearch.Dispose()
o.Dispose()
End Try
Return mResult
End Function
Public Enum GetComputerEnum GetComputer
Simple
Ping
End Enum
End Class
测试:
For Each s As String In HowToSearchPrinter.NetPrinters(HowToSearchPrinter.GetComputer.Simple)
Console.WriteLine(s)
Next
End Sub
结果:
Computer:FK-A05-01 Printer:hp LaserJet 1000 DOS
Computer:FK-A05-01 Printer:hp LaserJet 1000 (副本 3)
Computer:FK-A05-01 Printer:hp LaserJet 1000
Computer:FK-A05-01 Printer:EPSON AL-C8600 Advanced
Computer:FK-A09-05 Printer:在 PK 上自动 Canon LBP-810
Computer:FK-A09-05 Printer:OKi5530结算单
Computer:FK-A09-05 Printer:OKi5530
Computer:FK-A09-05 Printer:Microsoft Office Document Image Writer
Computer:FK-A09-05 Printer:EPSON LQ-1600KIII
Computer:PK Printer:Tencent Virtual Printer
Computer:PK Printer:Canon LBP-810
HOW TO:枚举网络所有打印机相关推荐
- 中标麒麟共享win7打印机_Win7系统添加网络共享打印机
(注:以下几种方法连接适用于打印机通过USB连接局域网中某台电脑安装好,电脑开放打印机共享.网络打印机通过网线口连接方法下篇介绍) 如今我们在工作和学习之中,经常会用到打印机,现在我们一般做一些文件的 ...
- 电脑网络怎么添加计算机,Win10系统如何添加网络共享打印机
原标题:Win10系统如何添加网络共享打印机 大家平常办公肯定碰到过需要连接网络打印机的情况,是不是有时候连起来特别麻烦?有时候弄一上午也没有头绪?因为大家没有掌握住连接的小技巧,今天柯鸣就跟大家分享 ...
- centos安装redis并客户端连接_网络共享打印机图文教程,电脑客户端连接安装设置共享打印机方法...
大家好,我是老盖,首先感谢观看本文,本篇文章做的有视频,视频讲述的比较详细,也可以看我发布的视频. 今天给大家讲一下网络共享打印机,客户端连接共享打印机的方法,电脑点开始,选择设备和打印机,也可以从控 ...
- dos批处理脚本自动添加网络IP打印机-简单亲测可用
dos批处理脚本自动添加网络IP打印机-简单亲测可用 前言: 网上找的批处理添加方法复杂且需要导入注册表. 花了一天时间研究出来的简单.快速的批处理命令. win10亲测可用. 核心代码: 1. 添加 ...
- win7下安装网络共享打印机 hp LaserJet 1010
公司环境如下: 打印机:HP LASERJET 1010 打印机主机操作系统:WINXP X86 需要连接网络共享打印机的电脑操作系统: WIN7 X64 在安装网络打印机前,先将在自己的电脑上添加一 ...
- 如何用计算机名查看共享打印机,如何查找网络共享打印机名称
[导读]如何查找网络共享打印机,下面就是191路由网整理的网络知识百科,来看看吧! 大家好,我是191路由器网小编,上述问题将由我为大家讲解. 以电脑为例,查找网络共享打印机的方法有: 1.双击网上邻 ...
- linux系统如何检测网络打印机,Linux系统配置工具网络与打印机与硬件侦测
Linux系统配置工具网络与打印机与硬件侦测CentOS系统设定工具:setup--Red Hat版本中独有的东东 利用root身份下达setup指令,(使用远程操作系统的时候要切换成英文语系) 主菜 ...
- 鸟哥的Linux私房菜(基础篇)- 第二十一章、系统配置工具(网络与打印机)与硬件侦测
第二十一章.系统配置工具(网络与打印机)与硬件侦测 最近升级日期:2009/09/15 除了手动配置之外,其实系统提供了一个名为 setup 的命令给系统管理员使用喔!这个命令还能够配置网络呢.此外, ...
- 计算机打开共享网络连接打印机共享打印机,网络共享打印机连接不上怎么办_电脑连不上共享打印机如何解决-win7之家...
通常为了方便多人可以一起共用一台打印机,都会在局域网络中将打印机共享,可是近日有不少用户却遇到网络共享打印机连接不上的情况,这该怎么办呢,确认打印机已经共享,并且电脑在同一个家庭组里,针对脑连不上共享 ...
- 通过无线网络实现两台计算机共享打印机共享,教你两招实现无线网络共享打印机...
教你两招实现无线网络共享打印机 腾讯视频/爱奇艺/优酷/外卖 充值4折起 我们办公室5台电脑用的都是无线网卡,有一个无线路由器,但只有一台打印机,我们想共享打印机,不知道应该怎样设置? 最简单的方法一 ...
最新文章
- 在寻找SD-WAN供应商之前,你应该考虑啥呢?
- 计算机组成原理:中央处理器
- python ctypes实现api测试_Python与C之间的相互调用(Python C API及Python ctypes库)
- Algorithms_入门基础_如何使用最高效的方式来判断一个数是否是2的N次方
- 数据库基本----SQL语句大全
- 线程模型、pthread 系列函数 和 简单多线程服务器端程序
- 【整理】内向交货(Inbound Delivery)
- Tensorflow yolov3 Intel Realsense D435 单摄像头下各模块识别时间测试
- iis7.0 https访问显示403访问被拒绝_提高网站访问性能——Tomcat优化
- c#winform自定义窗体(含源码)
- 算法-排序-基数排序(对任意整数排序)
- 【jzoj】2018.1.31 NOIP普及组——D组模拟赛
- 为什么所有的APP都在炫富?
- java bs和cs_BS与CS的区别和联系
- mysql错误码2002_MySQL错误ERROR 2002 (HY000): Can't connect to local MySQL server through socket
- 【LaTex】6.4 listings高亮设置
- 速学计算机,新手电脑配置速成学习
- NVIDIA边缘端设备(nano、tx2、xavier等)查看安装的jetpack版本
- nlp-with-transformers系列-02-从头构建文本分类器
- 微信聊天记录内的文件删除了怎么恢复?
热门文章
- Unity3D卡牌手游《X三国》源码前后端完整下载安卓+IOS双端
- 2021年低压电工考试资料及低压电工模拟考试系统
- python多层bp网络_多层bp神经网络 python
- 参考文献格式字号字体_论文格式字体字号要求
- springboot系列(二十六):如何实现word模板单页导出?这你得会|超级详细,建议收藏
- 用友t3 服务器通讯协议,远程登陆用友t3服务器
- dubbo源码解析-简单原理、与spring融合
- 计算机五笔教案ppt,计算机应用基础课件(五笔字型课件).ppt
- Android音视频开发(一)音视频基础知识
- Excel拼接数据库语句