active Printer
Thanks, that worked well in Excel 2003, though Excel 2000 didn't seem to like
it
"urkec" wrote:
"Libby" wrote:
Hi
Does anyone know how to return the number of pending jobs in the active
printer?
Many thanks in advance.
Libby
I used this to get print job count and some other data (Windows XP / Office
2007):
Sub getPrintJobs()
'connect to local computer
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
'get all printers installed
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer")
'get the active printer name
For Each objPrinter In colInstalledPrinters
If InStr(ActivePrinter, objPrinter.Name) Then
strPrinterName = objPrinter.Name
End If
Next
If strPrinterName = "" Then
MsgBox "Error getting the printer name"
Exit Sub
End If
'get pending jobs for the active printer
Set colPrintJobs = objWMIService.ExecQuery _
("Select * from Win32_PrintJob " & _
"where DriverName = '" & strPrinterName & "'")
'job count
Debug.Print "Pending jobs " _
& "for " & strPrinterName _
& ": " & colPrintJobs.Count
'print job data
For Each objPrintJob In colPrintJobs
Debug.Print "Job name" & ": " _
& objPrintJob.Document _
& " , Total pages" & ": " & _
objPrintJob.TotalPages _
& " , Job status" & ": " _
& objPrintJob.Status
Next
End Sub
Hope you can use it.
--
urkec
|