Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
How to check a printer's availability
Hi all,
Two bad things happened during my worksheet printing: the first time the notepad is not connected to network before I click the print button, but after I connect the notepad, the worksheet could not be printed out correctly. the second time the printer is out of paper before I click the print button, same thing happened as the first time. So I would like to know how to check the availability of a printer before printing? Thank you very much. Clara -- thank you so much for your help |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
How to check a printer's availability
"clara" wrote:
Hi all, Two bad things happened during my worksheet printing: the first time the notepad is not connected to network before I click the print button, but after I connect the notepad, the worksheet could not be printed out correctly. the second time the printer is out of paper before I click the print button, same thing happened as the first time. So I would like to know how to check the availability of a printer before printing? Thank you very much. Clara I'm not sure this is exactly what you need, but you can get some information about printer status using WMI. You need administrator privileges to run it: Sub WMITest() 'get active printer strPrinterName = Application.ActivePrinter 'connect to WMI on local computer strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") 'enumerate printers Set colInstalledPrinters = objWMIService.ExecQuery _ ("Select * from Win32_Printer") 'Printer status: '1 Other '2 Unknown '3 Idle '4 Printing '5 Warmup '6 Stopped printing '7 Offline 'get active printer status For Each objPrinter In colInstalledPrinters If InStr(strPrinterName, objPrinter.Name) Then Debug.Print objPrinter.Name If objPrinter.PrinterStatus = 1 _ Or objPrinter.PrinterStatus = 2 Then Debug.Print "Printer not responding" Else Debug.Print "Printer status OK" End If End If Next End Sub Hope this helps. -- urkec |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
How to check a printer's availability
Hi Urkec,
It works well! Before I printign, now I can know the state of the printer. Now, Could you tell me What is WMI and How can we take advantage of it? Thank you again! Clara -- thank you so much for your help "urkec" wrote: "clara" wrote: Hi all, Two bad things happened during my worksheet printing: the first time the notepad is not connected to network before I click the print button, but after I connect the notepad, the worksheet could not be printed out correctly. the second time the printer is out of paper before I click the print button, same thing happened as the first time. So I would like to know how to check the availability of a printer before printing? Thank you very much. Clara I'm not sure this is exactly what you need, but you can get some information about printer status using WMI. You need administrator privileges to run it: Sub WMITest() 'get active printer strPrinterName = Application.ActivePrinter 'connect to WMI on local computer strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") 'enumerate printers Set colInstalledPrinters = objWMIService.ExecQuery _ ("Select * from Win32_Printer") 'Printer status: '1 Other '2 Unknown '3 Idle '4 Printing '5 Warmup '6 Stopped printing '7 Offline 'get active printer status For Each objPrinter In colInstalledPrinters If InStr(strPrinterName, objPrinter.Name) Then Debug.Print objPrinter.Name If objPrinter.PrinterStatus = 1 _ Or objPrinter.PrinterStatus = 2 Then Debug.Print "Printer not responding" Else Debug.Print "Printer status OK" End If End If Next End Sub Hope this helps. -- urkec |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
How to check a printer's availability
"clara" wrote:
Hi Urkec, It works well! Before I printign, now I can know the state of the printer. Now, Could you tell me What is WMI and How can we take advantage of it? WMI stands for Windows Management Instrumentation. It is used mostly for system administration (getting system information, monitoring etc). It is a set of classes (like Win32_Printer) that represent just about any computer component you can think of. It can be very useful. Hope this helps. I'm sure you can google a much better answer. -- urkec |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
How to check a printer's availability
I think that this would be useful to me, but every time I run it, I get a
status return of 3, even when the printer is turned off. Is there something I need in addition to this script? Thanks for the help. "urkec" wrote: "clara" wrote: Hi all, Two bad things happened during my worksheet printing: the first time the notepad is not connected to network before I click the print button, but after I connect the notepad, the worksheet could not be printed out correctly. the second time the printer is out of paper before I click the print button, same thing happened as the first time. So I would like to know how to check the availability of a printer before printing? Thank you very much. Clara I'm not sure this is exactly what you need, but you can get some information about printer status using WMI. You need administrator privileges to run it: Sub WMITest() 'get active printer strPrinterName = Application.ActivePrinter 'connect to WMI on local computer strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") 'enumerate printers Set colInstalledPrinters = objWMIService.ExecQuery _ ("Select * from Win32_Printer") 'Printer status: '1 Other '2 Unknown '3 Idle '4 Printing '5 Warmup '6 Stopped printing '7 Offline 'get active printer status For Each objPrinter In colInstalledPrinters If InStr(strPrinterName, objPrinter.Name) Then Debug.Print objPrinter.Name If objPrinter.PrinterStatus = 1 _ Or objPrinter.PrinterStatus = 2 Then Debug.Print "Printer not responding" Else Debug.Print "Printer status OK" End If End If Next End Sub Hope this helps. -- urkec |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
VBA Availability? | Excel Programming | |||
Check online network availability | Excel Programming | |||
Check image availability on userform | Excel Programming | |||
How to check for availability activeX control | Excel Programming | |||
Availability of UDF | Excel Programming |