Rubrik: Drucker | VB-Versionen: VB4, VB5, VB6 | 07.06.04 |
Print-Queue-Statistik (WMI) Mit Hilfe von WMI lassen sich sehr schnell alle noch anstehenden Druckaufträge inkl. der zu druckenden Seiten ermitteln. | ||
Autor: Gerhard Kuklau | Bewertung: | Views: 17.360 |
ohne Homepage | System: WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Mit dem mächtigen WMI-Objekt (WMI = Windows Management Instrumentation) lassen sich sehr schnell alle noch anstehenden Druckaufträge inkl. der zu druckenden Seiten ermitteln.
Erstellen Sie ein neues Projekt und platzieren auf die Form eine ListBox und einen CommandButton. Fügen Sie nachfolgenden Code in den Codeteil der Form ein.
Public Function fPrint_Queue_Stat(LB As ListBox) As Boolean ' aktuelle Print-Queue Statistik-Informationen in ' einer Listbox anzeigen: ' =============================================== Dim ComputerName As String Dim strPrinterStatus As String Dim oWMI Dim oPrintJob Dim colPrintJobs Dim lTotalJobs As Long Dim lTotalPages As Long On Error GoTo errHandler ' Computername (. = lokaler Rechner) ComputerName = "." ' WMI-Objekt erstellen Set oWMI = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & ComputerName & "\root\cimv2") ' WMI-Abfrage: alle Druckaufträge ermitteln Set colPrintJobs = oWMI.ExecQuery("SELECT * FROM Win32_PrintJob") ' Druckaufträge durchlaufen und ' anstehende Seiten hochzählen For Each oPrintJob In colPrintJobs lTotalJobs = lTotalJobs + 1 lTotalPages = lTotalPages + oPrintJob.TotalPages Next ' Ergebnis in ListBox anzeigen With LB .AddItem "Summe aller Druck-Jobs in der Print-Queue: " & lTotalJobs .AddItem "Summe aller Druck-Seiten in der Print-Queue: " & lTotalPages End With ' Funktionsrückgabewert fPrint_Queue_Stat = True Exit Function errHandler: fPrint_Queue_Stat = False End Function
Private Sub Command1_Click() ' alle Druckaufträge ermitteln If Not fPrint_Queue_Stat(List1) Then ' Fehler! MsgBox "Es ist ein Fehler aufgetreten. Evtl. ist WMI nicht installiert." End If End Sub