http://www.codeproject.com/csharp/printeroffline.aspHow to Check if your Printer is Connected, using C#
PrinterStatus on local and network printers
http://www.dotnet247.com/247reference/msgs/45/229078.aspx
vb.net的,照着修改
add reference to System managementImports System.Management
Private Enum PrinterStatus
PrinterIdle = 3
PrinterPrinting = 4
PrinterWarmingUp = 5
End Enum Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
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
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
s = "unknown state"
End Select
PrinterStatusToString = s
End Function
PrinterStatus on local and network printers
http://www.dotnet247.com/247reference/msgs/45/229078.aspx
vb.net的,照着修改
add reference to System managementImports System.Management
Private Enum PrinterStatus
PrinterIdle = 3
PrinterPrinting = 4
PrinterWarmingUp = 5
End Enum Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
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
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
s = "unknown state"
End Select
PrinterStatusToString = s
End Function
{
string printStatus = "No default printer installed";
ManagementObjectCollection printers = new ManagementClass( "Win32_Printer" ).GetInstances();
foreach( ManagementObject printer in printers )
{
// if ( printer["Default"] ) { //this works only in WinXP version
// an alternative to "PrinterStatus" would be "Availability"
switch ( printer["PrinterStatus"].ToString() )
{
case "1": printStatus = "Other"; break;
case "2": printStatus = "Unknown"; break;
case "3": printStatus = "Idle"; break;
case "4": printStatus = "Printing"; break;
case "5": printStatus = "Warmup"; break;
case "6": printStatus = "Stopped"; break;
case "7": printStatus = "Offline"; break;
}
// }
}
this.PrinterStatus = printStatus;
return printStatus;
}