Hallo Leute,
seit 11 Jahren hatte ich eine eigene VB6-DLL im Einsatz gehabt, dir mir die Printqueue ausgelesen hatte, die jetzt aber wohl nicht mehr funktioniert. Ich erhalte immer einen Klassenfehler.
Das ist aber auch nicht weiter schlimm, da meine DLL sowieso nur zwei Dinge gemacht hatte:
1. Anzahl Druckjobs je Drucker angezeigt
2. Filter auf Dokumentname
Die Anzahl der Druckjobs je Drucker kann ich auslesen, dass klappt auch einwandfrei.
Meine Problem ist im Augenblick, wie komme ich an die Dokumentnamen heran.
Leider ist mein gesamter VB6-Programmcode verloren gegangen, so dass ich hier nicht nach schauen kann.
Aus diesem Grunde baue ich mir die DLL nun in VBS nach.
Hat einer eine Idee, wie ich jetzt an alle Dokumentennamen je Drucker herankomme?
Meine Funktion sieht im Augenblick wie folgt aus:
Ich hoffe ich konnte mich verständlich ausdrücken und jemand hat eine Idee.
Vielleicht weiß auch jemand, wie ich gezielt auf den Drucker gleich filtern kann.
Vielen Dank im Voraus.
Gruß Achilleus
seit 11 Jahren hatte ich eine eigene VB6-DLL im Einsatz gehabt, dir mir die Printqueue ausgelesen hatte, die jetzt aber wohl nicht mehr funktioniert. Ich erhalte immer einen Klassenfehler.
Das ist aber auch nicht weiter schlimm, da meine DLL sowieso nur zwei Dinge gemacht hatte:
1. Anzahl Druckjobs je Drucker angezeigt
2. Filter auf Dokumentname
Die Anzahl der Druckjobs je Drucker kann ich auslesen, dass klappt auch einwandfrei.
Meine Problem ist im Augenblick, wie komme ich an die Dokumentnamen heran.
Leider ist mein gesamter VB6-Programmcode verloren gegangen, so dass ich hier nicht nach schauen kann.
Aus diesem Grunde baue ich mir die DLL nun in VBS nach.
Hat einer eine Idee, wie ich jetzt an alle Dokumentennamen je Drucker herankomme?
Meine Funktion sieht im Augenblick wie folgt aus:
VB.NET-Quellcode
- Public Function AnzahlDruckauftrag(PrinterName As String, Optional DokumentName As String = "", Optional blnWait As Boolean = False) As Integer
- Dim strComputer As String
- Dim objWMIService As Object
- Dim colPrinterQueues As New Collection
- Dim Result As Integer
- strComputer = "."
- Set objWMIService = GetObject("winmgmts:" _
- & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
- Set colPrintQueues = objWMIService.ExecQuery _
- ("Select * from Win32_PerfFormattedData_Spooler_PrintQueue Where " & _
- "Name <> '_Total'")
- For Each objPrintQueue In colPrintQueues
- If objPrintQueue.Name = PrinterName Then
- If blnWait Then
- Do
- Result = AnzahlDruckauftrag(PrinterName)
- Loop While Result <> 0
- Exit For
- Else
- AnzahlDruckauftrag = objPrintQueue.Jobs
- Exit For
- End If
- End If
- Next
- End Function
Ich hoffe ich konnte mich verständlich ausdrücken und jemand hat eine Idee.
Vielleicht weiß auch jemand, wie ich gezielt auf den Drucker gleich filtern kann.
Vielen Dank im Voraus.
Gruß Achilleus