Forum: VB.NET |
Thema:
Re: Druckaufträge löschen |
Von:
Tobi Ulm (
06.12.2005 14:35) |
Hi Ralf,
hier ein sample um informationen über die Druckerqueue abzurufen
(WICHTIG. erst eine Referenz aus System.Management.dll setzen (=WMI))
<code>
Dim Query As String = "SELECT * FROM Win32_PrintJob"
Dim JobQuery As New ManagementObjectSearcher(Query)
Dim Jobs As ManagementObjectCollection = JobQuery.Get()
' Display information for all jobs in the queue.
Dim Job As ManagementObject
For Each Job In Jobs
Console.WriteLine("Caption: " & Job("Caption"))
Console.WriteLine("DataType: " & Job("DataType"))
Console.WriteLine("Description: " & Job("Description"))
Console.WriteLine("Document: " & Job("Document"))
Console.WriteLine("DriverName: " & Job("DriverName"))
Console.WriteLine("ElapsedTime: " & Job("ElapsedTime"))
Console.WriteLine("HostPrintQueue: " & Job("HostPrintQueue"))
Console.WriteLine("InstallDate: " & Job("InstallDate"))
Console.WriteLine("JobId: " & Job("JobId").ToString())
Console.WriteLine("JobStatus: " & Job("JobStatus"))
Console.WriteLine("Name: " & Job("Name"))
Console.WriteLine("Notify: " & Job("Notify"))
Console.WriteLine("Owner: " & Job("Owner"))
Console.WriteLine("PagesPrinted: " & _
Job("PagesPrinted").ToString())
Console.WriteLine("Parameters: " & Job("Parameters"))
Console.WriteLine("PrintProcessor: " & Job("PrintProcessor"))
Console.WriteLine("Priority: " & Job("Priority").ToString())
Console.WriteLine("Size: " & Job("Size").ToString())
Console.WriteLine("StartTime: " & Job("StartTime"))
Console.WriteLine("Status: " & Job("Status"))
Console.WriteLine("StatusMask: " & Job("StatusMask").ToString())
Console.WriteLine("TimeSubmitted: " & Job("TimeSubmitted"))
Console.WriteLine("TotalPages: " & Job("TotalPages").ToString())
Console.WriteLine("UntilTime: " & Job("UntilTime"))
Next
</code>
löschen könnten so gehen:
<code>
Dim Query As String = "SELECT * FROM Win32_PrintJob"
Dim JobQuery As New ManagementObjectSearcher(Query)
Dim Jobs As ManagementObjectCollection = JobQuery.Get()
Dim Job As ManagementObject
For Each Job In Jobs
Dim ReturnValue As Integer
ReturnValue = CType(Job.InvokeMethod("Cancel", Nothing).ToString(), Integer)
If ReturnValue = 0 Then
Console.WriteLine("Successfully cancelled job.")
ElseIf ReturnValue = 5 Then
Console.WriteLine("Access denied.")
Else
Console.WriteLine("Unrecognized return value when resuming job.")
End If
'' Find the corresponding printer for this job.
Query = "SELECT * FROM Win32_Printer WHERE DriverName='" & Job("DriverName") & "'"
Dim PrinterQuery As New ManagementObjectSearcher(Query)
Dim Printers As ManagementObjectCollection = PrinterQuery.Get()
Dim Printer As ManagementObject
For Each Printer In Printers
If (CType(Printer("ExtendedPrinterStatus").ToString(), Integer) And 8) = 8 Then
Console.WriteLine("Printer is paused. Attempting to resume.")
ReturnValue = Val(Printer.InvokeMethod("Cancel", Nothing).ToString())
If ReturnValue = 0 Then
Console.WriteLine("Successfully resumed printing.")
ElseIf ReturnValue = 5 Then
Console.WriteLine("Access denied.")
Else
Console.WriteLine("Unrecognized return value when resuming printer.")
End If
End If
Next
Next
</code>
cu
Tobi
Betreff |
Von |
Datum |
|
  |
Re: Druckaufträge löschen
HI Ralf,<br><br>leider hab ich vorhin schmarrn geschrieben im 2.ten code bsp.<br><br><code><br> Public Function CancelPrintJob(ByVal printerName As String, ByVal printJobID As Integer) As Boolean<br><br> ... |
 |
 |
 |
|
|
Tobi
Ulm
|
06.12.2005 15:22 |
|
|
Ralf
Ziola
|
07.12.2005 14:22 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!