通过vb.net检查打印机的在线状态
时间:2014-07-17 20:35 来源: 我爱IT技术网 作者:山风
通过vb.net检查打印机的在线状态。
完整代码如下:
- --是否有安装打印机
- Imports System.Drawing.Printing
- Public Class Form1
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- MessageBox.Show(CheckPrinter("Microsoft XPS Document Writer").ToString)
- MessageBox.Show(CheckPrinter("EPSON Stylus Photo 895").ToString)
- End Sub
- Private Function CheckPrinter(ByVal printerName As String) As Boolean
- Dim online As Boolean = False
- Try
- Dim mprintDocument As PrintDocument = New PrintDocument()
- mprintDocument.PrinterSettings.PrinterName = printerName
- online = mprintDocument.PrinterSettings.IsValid
- Catch
- online = False
- End Try
- Return online
- End Function
- End Class
- ---状态判断
- Private Enum PrinterStatus
- PrinterIdle = 3
- PrinterPrinting = 4
- PrinterWarmingUp = 5
- ' For more states see WMI docs.
- End Enum
- Private Function PrinterStatusToString(ByVal ps As PrinterStatus) As
- String
- Dim s As String
- Select Case ps
- Case PrinterStatus.PrinterIdle
- s = "waiting (idle)"
- Case PrinterStatus.PrinterPrinting
- s = "printing"
- Case PrinterStatus.PrinterWarmingUp
- s = "warming up"
- Case Else ' Vielleicht gibt es noch weitere Falle...
- s = "unknown state"
- End Select
- PrinterStatusToString = s
- End Function
- Private Sub Form1_Load( _
- ByVal sender As System.Object, _
- ByVal e As System.EventArgs _
- ) Handles MyBase.Load
- Dim strPrintServer As String
- strPrintServer = "localhost"
- Dim WMIObject As String, PrinterSet As Object, Printer As Object
- WMIObject = "winmgmts://" & strPrintServer
- PrinterSet = GetObject(WMIObject).InstancesOf("win32_Printer")
- For Each Printer In PrinterSet
- MsgBox( _
- Printer.Name & ": " & _
- PrinterStatusToString(Printer.PrinterStatus) _
- )
- Next Printer
- End Sub
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
