Hello,
"Raymond Martin" <ra*****@bellso uth.net> schrieb:
How do I find out if the default printer is offline or online (or has a
paper jam)?
\\\
Private Enum PrinterStatus
PrinterIdle = 3
PrinterPrinting = 4
PrinterWarmingU p = 5
' For more states see WMI docs.
End Enum
Private Function PrinterStatusTo String( _
ByVal ps As PrinterStatus _
) As String
Dim s As String
Select Case ps
Case PrinterStatus.P rinterIdle
s = "waiting (idle)"
Case PrinterStatus.P rinterPrinting
s = "printing"
Case PrinterStatus.P rinterWarmingUp
s = "warming up"
Case Else ' Vielleicht gibt es noch weitere Fälle...
s = "unknown state"
End Select
Return s
End Function
Private Sub Form1_Load( _
ByVal sender As System.Object, _
ByVal e As System.EventArg s _
) Handles MyBase.Load
Dim strPrintServer As String
strPrintServer = "localhost"
Dim WMIObject As String, PrinterSet As Object, Printer As Object
WMIObject = "winmgmts://" & strPrintServer
PrinterSet = GetObject(WMIOb ject).Instances Of("win32_Print er")
For Each Printer In PrinterSet
MsgBox( _
Printer.Name & ": " & _
PrinterStatusTo String(Printer. PrinterStatus) _
)
Next Printer
End Sub
///
Documentation of WMI classes:
http://msdn.microsoft.com/library/de...mi_classes.asp
HTH,
Herfried K. Wagner
--
MVP · VB Classic, VB .NET
http://www.mvps.org/dotnet